which can be cascading (previously 'sysop' was hard-coded as the only one).
=== Bug fixes in 1.22 ===
-* Disable Special:PasswordReset when $wgEnableEmail. Previously one could still
- navigate to the page by entering the URL directly.
+* Disable Special:PasswordReset when $wgEnableEmail is false. Previously one
+ could still navigate to the page by entering the URL directly.
* (bug 47138) Fixed a fatal error when a blocked user tries to automatically
create an account on login due external authentication in some circumstances.
* (bug 23393) HTML <hN> headings containing line breaks are now handled
* A bias in wfRandomString() toward digits 1-7 has been corrected. Generated
strings will now start with digits 0 and 8-f as often as they should.
* (bug 45371) Removed Parser_LinkHooks and CoreLinkFunctions classes.
+* (bug 41545) Allow <kbd>, <samp>, and <var> to be nested like allowed in html.
=== API changes in 1.22 ===
* (bug 46626) xmldoublequote parameter was removed. Because of a bug, the
}
// Run hook for extension authorization plugins
+ /** @var $result array */
+ $result = null;
if ( !wfRunHooks( 'ImgAuthBeforeStream', array( &$title, &$path, &$name, &$result ) ) ) {
wfForbidden( $result[0], $result[1], array_slice( $result, 2 ) );
return;
/**
* Shortcut to get the user Language being used for this instance
*
- * @deprecated 1.19 Use getLanguage instead
+ * @deprecated since 1.19 Use getLanguage instead
* @return Language
*/
final public function getLang() {
*
* This maintains WikiPage functions for backwards compatibility.
*
- * @todo move and rewrite code to an Action class
+ * @todo Move and rewrite code to an Action class
*
* See design.txt for an overview.
* Note: edit user interface and cache support functions have been
$content = $this->fetchContentObject();
- $this->mContent = ContentHandler::getContentText( $content ); #@todo: get rid of mContent everywhere!
+ // @todo Get rid of mContent everywhere!
+ $this->mContent = ContentHandler::getContentText( $content );
ContentHandler::runLegacyHooks( 'ArticleAfterFetchContent', array( &$this, &$this->mContent ) );
wfProfileOut( __METHOD__ );
* Show a diff page according to current request variables. For use within
* Article::view() only, other callers should use the DifferenceEngine class.
*
- * @todo: make protected
+ * @todo Make protected
*/
public function showDiffPage() {
$request = $this->getContext()->getRequest();
if ( $ipblock ) {
# Check if the block is an autoblock and would exceed the user block
# if renewed. If so, do nothing, otherwise prolong the block time...
- if ( $ipblock->mAuto && // @TODO: why not compare $ipblock->mExpiry?
+ if ( $ipblock->mAuto && // @todo Why not compare $ipblock->mExpiry?
$this->mExpiry > Block::getAutoblockExpiry( $ipblock->mTimestamp )
) {
# Reset block timestamp to now and its expiry to
* List of special pages, followed by what subtitle they should go under
* at Special:SpecialPages
*
- * @deprecated 1.21 Override SpecialPage::getGroupName instead
+ * @deprecated since 1.21 Override SpecialPage::getGroupName instead
*/
$wgSpecialPageGroups = array();
* of texts are also rendered as wikitext, it only means that links, magic words, etc will have
* the effect on the database they would have on a wikitext page.
*
- * @todo: On the long run, it would be nice to put categories etc into a separate structure,
+ * @todo On the long run, it would be nice to put categories etc into a separate structure,
* or at least parse only the contents of comments in the scripts.
*
* @since 1.21
}
}
- //@todo: add EditForm plugin interface and use it here!
+ // @todo add EditForm plugin interface and use it here!
// search for textarea1 and textares2, and allow EditForm to override all uses.
$wgOut->addHTML( Html::openElement( 'form', array( 'id' => self::EDITFORM_ID, 'name' => self::EDITFORM_ID,
'method' => 'post', 'action' => $this->getActionURL( $this->getContextTitle() ),
$content_model = strval( $row->rev_content_model );
} else {
// probably using $wgContentHandlerUseDB = false;
- // @todo: test!
+ // @todo test!
$title = Title::makeTitle( $row->page_namespace, $row->page_title );
$content_model = ContentHandler::getDefaultModelFor( $title );
}
$content_format = strval( $row->rev_content_format );
} else {
// probably using $wgContentHandlerUseDB = false;
- // @todo: test!
+ // @todo test!
$content_handler = ContentHandler::getForModelID( $content_model );
$content_format = $content_handler->getDefaultFormat();
}
*/
public static function makeHeadline( $level, $attribs, $anchor, $html, $link, $legacyAnchor = false ) {
$ret = "<h$level$attribs"
- . "<span class=\"mw-headline\" id=\"$anchor\">$html</span> "
+ . "<span class=\"mw-headline\" id=\"$anchor\">$html</span>"
. $link
. "</h$level>";
if ( $legacyAnchor !== false ) {
*/
class LinksUpdate extends SqlDataUpdate {
- // @todo: make members protected, but make sure extensions don't break
+ // @todo make members protected, but make sure extensions don't break
public $mId, //!< Page ID of the article linked from
$mTitle, //!< Title object of the article linked from
// This also enforces $.isReady to be true at </body> which fixes the
// mw.loader bug in Firefox with using document.write between </body>
// and the DOMContentReady event (bug 47457).
- $html = Html::inlineScript( 'jQuery.ready();' );
+ $html = Html::inlineScript( 'window.jQuery && jQuery.ready();' );
if ( !$wgResourceLoaderExperimentalAsyncLoading ) {
$html .= $this->getScriptsForBottomQueue( false );
}
}
+ ## Make sure that form fields have their parent set. See bug 41337.
+ $dummyForm = new HTMLForm( array(), $context );
+
## Prod in defaults from the user
foreach ( $defaultPreferences as $name => &$info ) {
$prefFromUser = self::getOptionFromUser( $name, $info, $user );
$field = HTMLForm::loadInputFromParameters( $name, $info ); // For validation
+ $field->mParent = $dummyForm;
$defaultOptions = User::getDefaultOptions();
$globalDefault = isset( $defaultOptions[$name] )
? $defaultOptions[$name]
# if we have a content object, use it to set the model and type
if ( !empty( $row['content'] ) ) {
- //@todo: when is that set? test with external store setup! check out insertOn() [dk]
+ // @todo when is that set? test with external store setup! check out insertOn() [dk]
if ( !empty( $row['text_id'] ) ) {
throw new MWException( "Text already stored in external store (id {$row['text_id']}), " .
"can't serialize content object" );
* to the $audience parameter
*
* @deprecated in 1.21, use getContent() instead
- * @todo: replace usage in core
+ * @todo Replace usage in core
* @return String
*/
public function getText( $audience = self::FOR_PUBLIC, User $user = null ) {
}
$htmlnest = array( # Tags that can be nested--??
'table', 'tr', 'td', 'th', 'div', 'blockquote', 'ol', 'ul',
- 'li', 'dl', 'dt', 'dd', 'font', 'big', 'small', 'sub', 'sup', 'span'
+ 'li', 'dl', 'dt', 'dd', 'font', 'big', 'small', 'sub', 'sup', 'span',
+ 'var', 'kbd', 'samp'
);
$tabletags = array( # Can only appear inside table, we will close them
'td', 'th', 'tr',
protected $users = 0;
protected $images = 0;
- // @TODO: deprecate this constructor
+ // @todo deprecate this constructor
function __construct( $views, $edits, $good, $pages = 0, $users = 0 ) {
$this->views = $views;
$this->edits = $edits;
/**
* Shortcut to get user's language
*
- * @deprecated 1.19 Use getLanguage instead
+ * @deprecated since 1.19 Use getLanguage instead
* @return Language
* @since 1.18
*/
*
* @param $page Mixed: SpecialPage or string
* @param $group String
- * @deprecated 1.21 Override SpecialPage::getGroupName
+ * @deprecated since 1.21 Override SpecialPage::getGroupName
*/
public static function setGroup( $page, $group ) {
wfDeprecated( __METHOD__, '1.21' );
*
* @param $page SpecialPage
* @return String
- * @deprecated 1.21 Use SpecialPage::getFinalGroupName
+ * @deprecated since 1.21 Use SpecialPage::getFinalGroupName
*/
public static function getGroup( &$page ) {
wfDeprecated( __METHOD__, '1.21' );
$this->mOptions = array( 'FOR UPDATE' );
}
- // @todo: get connection only when it's needed? make sure that doesn't break anything, especially transactions!
+ // @todo get connection only when it's needed? make sure that doesn't break anything, especially transactions!
$this->mDb = wfGetDB( DB_MASTER );
$this->mWithTransaction = $withTransaction;
*
* @note: this does not perform a full wikitext to HTML conversion, it merely applies
* a message transformation.
- * @todo: figure out whether that is actually The Right Thing.
+ * @todo figure out whether that is actually The Right Thing.
*/
public function getHTML( $shortContext = false, $longContext = false ) {
$text = $this->getWikiText( $shortContext, $longContext );
* @return Bool
*/
public function isConversionTable() {
- //@todo: ConversionTable should become a separate content model.
+ // @todo ConversionTable should become a separate content model.
return $this->getNamespace() == NS_MEDIAWIKI &&
strpos( $this->getText(), 'Conversiontable/' ) === 0;
* (and only when) $wgActions[$action] === true. This allows subclasses
* to override the default behavior.
*
- * @todo: move this UI stuff somewhere else
+ * @todo Move this UI stuff somewhere else
*
* @return Array
*/
* @return String|false The text of the current revision
* @deprecated as of 1.21, getContent() should be used instead.
*/
- public function getText( $audience = Revision::FOR_PUBLIC, User $user = null ) { // @todo: deprecated, replace usage!
+ public function getText( $audience = Revision::FOR_PUBLIC, User $user = null ) { // @todo deprecated, replace usage!
ContentHandler::deprecated( __METHOD__, '1.21' );
$this->loadLastEdit();
}
if ( $this->mTitle->getNamespace() == NS_MEDIAWIKI ) {
- // @todo: move this logic to MessageCache
+ // @todo move this logic to MessageCache
if ( $this->exists() ) {
// NOTE: use transclusion text for messages.
*
* @return boolean whether sections are supported.
*
- * @todo: the skin should check this and not offer section functionality if sections are not supported.
- * @todo: the EditPage should check this and not offer section functionality if sections are not supported.
+ * @todo The skin should check this and not offer section functionality if sections are not supported.
+ * @todo The EditPage should check this and not offer section functionality if sections are not supported.
*/
public function supportsSections() {
return $this->getContentHandler()->supportsSections();
$options = $this->getContentHandler()->makeParserOptions( $context );
if ( $this->getTitle()->isConversionTable() ) {
- //@todo: ConversionTable should become a separate content model, so we don't need special cases like this one.
+ // @todo ConversionTable should become a separate content model, so we don't need special cases like this one.
$options->disableContentConversion();
}
DeferredUpdates::addUpdate( new SiteStatsUpdate( 0, 1, $good, $total ) );
DeferredUpdates::addUpdate( new SearchUpdate( $id, $title, $content->getTextForSearchIndex() ) );
- // @TODO: let the search engine decide what to do with the content object
+ // @todo let the search engine decide what to do with the content object
// If this is another user's talk page, update newtalk.
// Don't do this if $options['changed'] = false (null-edits) nor if
* performs permissions checks on $user, then calls commitRollback()
* to do the dirty work
*
- * @todo: separate the business/permission stuff out from backend code
+ * @todo Separate the business/permission stuff out from backend code
*
* @param string $fromP Name of the user whose edits to rollback.
* @param string $summary Custom summary. Set to default summary if empty.
* Purge caches on page update etc
*
* @param $title Title object
- * @todo: verify that $title is always a Title object (and never false or null), add Title hint to parameter $title
+ * @todo Verify that $title is always a Title object (and never false or null), add Title hint to parameter $title
*/
public static function onArticleEdit( $title ) {
// Invalidate caches of articles which include this page
function doWork() {
global $wgUseFileCache;
- // @todo: several of the methods called on $this->page are not declared in Page, but present
+ // @todo several of the methods called on $this->page are not declared in Page, but present
// in WikiPage and delegated by Article.
$isCurrent = $this->revid === $this->page->getLatest();
if ( $this->getNumRows() > 1 ) {
$id = $rev->getId();
$radio = array( 'type' => 'radio', 'value' => $id );
- /** @todo: move title texts to javascript */
+ /** @todo Move title texts to javascript */
if ( $firstInList ) {
$first = Xml::element( 'input',
array_merge( $radio, array(
}
}
- // @todo: Add support for appending/prepending to the Content interface
+ // @todo Add support for appending/prepending to the Content interface
if ( !( $content instanceof TextContent ) ) {
$mode = $contentHandler->getModelID();
/**
* Do not use, does nothing, will be removed
- * @deprecated 1.21
+ * @deprecated since 1.21
*/
public function finishPageSetGeneration() {
wfDeprecated( __METHOD__, '1.21' );
/* lazy loaded */
protected $mCached;
- /* @TODO: configurable? */
+ /* @todo configurable? */
const MISS_FACTOR = 15; // log 1 every MISS_FACTOR cache misses
const MISS_TTL_SEC = 3600; // how many seconds ago is "recent"
// gzip output to buffer as needed and set headers...
if ( $this->useGzip() ) {
- // @TODO: ugly wfClientAcceptsGzip() function - use context!
+ // @todo Ugly wfClientAcceptsGzip() function - use context!
if ( wfClientAcceptsGzip() ) {
header( 'Content-Encoding: gzip' );
return $compressed;
class ResourceFileCache extends FileCacheBase {
protected $mCacheWorthy;
- /* @TODO: configurable? */
+ /* @todo configurable? */
const MISS_THRESHOLD = 360; // 6/min * 60 min
/**
* building a full text search index. If no useful representation exists,
* this method returns an empty string.
*
- * @todo: test that this actually works
- * @todo: make sure this also works with LuceneSearch / WikiSearch
+ * @todo Test that this actually works
+ * @todo Make sure this also works with LuceneSearch / WikiSearch
*/
public function getTextForSearchIndex();
* @return string|false The wikitext to include when another page includes this
* content, or false if the content is not includable in a wikitext page.
*
- * @todo allow native handling, bypassing wikitext representation, like
- * for includable special pages.
- * @todo allow transclusion into other content models than Wikitext!
- * @todo used in WikiPage and MessageCache to get message text. Not so
- * nice. What should we use instead?!
+ * @todo Allow native handling, bypassing wikitext representation, like
+ * for includable special pages.
+ * @todo Allow transclusion into other content models than Wikitext!
+ * @todo Used in WikiPage and MessageCache to get message text. Not so
+ * nice. What should we use instead?!
*/
public function getWikitextForTransclusion();
*/
public function preSaveTransform( Title $title, User $user, ParserOptions $popts ) {
global $wgParser;
- // @todo: make pre-save transformation optional for script pages
+ // @todo Make pre-save transformation optional for script pages
$text = $this->getNativeData();
$pst = $wgParser->preSaveTransform( $text, $title, $user, $popts );
*/
public function preSaveTransform( Title $title, User $user, ParserOptions $popts ) {
global $wgParser;
- // @todo: make pre-save transformation optional for script pages
+ // @todo Make pre-save transformation optional for script pages
// See bug #32858
$text = $this->getNativeData();
$this->checkModelID( $that->getModel() );
- # @todo: could implement this in DifferenceEngine and just delegate here?
+ // @todo could implement this in DifferenceEngine and just delegate here?
if ( !$lang ) {
$lang = $wgContLang;
/**
* Get the Language object
*
- * @deprecated 1.19 Use getLanguage instead
+ * @deprecated since 1.19 Use getLanguage instead
* @return Language
*/
public function getLang() {
/**
* Set the Language object
*
- * @deprecated 1.19 Use setLanguage instead
+ * @deprecated since 1.19 Use setLanguage instead
* @param Language|string $l Language instance or language code
*/
public function setLang( $l ) {
}
/**
- * @deprecated 1.19 Use getLanguage instead
+ * @deprecated since 1.19 Use getLanguage instead
* @return Language
*/
public function getLang() {
/**
* Get the Language object
*
- * @deprecated 1.19 Use getLanguage instead
+ * @deprecated since 1.19 Use getLanguage instead
* @return Language
*/
public function getLang();
/**
* Set the Language object
*
- * @deprecated 1.19 Use setLanguage instead
+ * @deprecated since 1.19 Use setLanguage instead
* @param Language|string $l Language instance or language code
*/
public function setLang( $l ) {
}
/**
- * @deprecated 1.19 Use getLanguage instead
+ * @deprecated since 1.19 Use getLanguage instead
* @return Language
*/
public function getLang() {
*
* @return string: wikitext of a link to the server software's web site
*/
- static function getSoftwareLink();
+ function getSoftwareLink();
/**
* A string describing the current software version, like from
/**
* @return string wikitext of a link to the server software's web site
*/
- public static function getSoftwareLink() {
+ public function getSoftwareLink() {
return "[http://www.microsoft.com/sql/ MS SQL Server]";
}
/**
* @return string
*/
- public static function getSoftwareLink() {
+ public function getSoftwareLink() {
return '[http://www.mysql.com/ MySQL]';
}
/**
* @return string wikitext of a link to the server software's web site
*/
- public static function getSoftwareLink() {
+ public function getSoftwareLink() {
return '[http://www.oracle.com/ Oracle]';
}
/**
* @return string wikitext of a link to the server software's web site
*/
- public static function getSoftwareLink() {
+ public function getSoftwareLink() {
return '[http://www.postgresql.org/ PostgreSQL]';
}
}
/**
- * @todo: check if it should be true like parent class
+ * @todo Check if it should be true like parent class
*
* @return bool
*/
/**
* @return string wikitext of a link to the server software's web site
*/
- public static function getSoftwareLink() {
+ public function getSoftwareLink() {
return "[http://sqlite.org/ SQLite]";
}
* Given an array of non-normalised probabilities, this function will select
* an element and return the appropriate key
*
- * @deprecated 1.21, use ArrayUtils::pickRandom()
+ * @deprecated since 1.21, use ArrayUtils::pickRandom()
*
* @param $weights array
*
if ( $this->mNewPage->isCssJsSubpage() || $this->mNewPage->isCssOrJsPage() ) {
// Stolen from Article::view --AG 2007-10-11
// Give hooks a chance to customise the output
- // @TODO: standardize this crap into one function
+ // @todo standardize this crap into one function
if ( ContentHandler::runLegacyHooks( 'ShowRawCssJs', array( $this->mNewContent, $this->mNewPage, $out ) ) ) {
// NOTE: deprecated hook, B/C only
// use the content object's own rendering
final public function __construct( FileBackendStore $backend, array $params ) {
$this->backend = $backend;
list( $required, $optional ) = $this->allowedParams();
- // @TODO: normalizeAnyStoragePaths() calls are overzealous, use a parameter list
+ // @todo normalizeAnyStoragePaths() calls are overzealous, use a parameter list
foreach ( $required as $name ) {
if ( isset( $params[$name] ) ) {
// Normalize paths so the paths to the same file have the same string
*/
function isCacheable() {
$this->load(); // if loaded from cache, metadata will be null if it didn't fit
- return $this->metadata !== null && strlen( $this->metadata ) <= self::CACHE_FIELD_MAX_LEN;
+ return $this->metadata !== null
+ && strlen( serialize( $this->metadata ) ) <= self::CACHE_FIELD_MAX_LEN;
}
/**
*
* @param array $jobs of Job objects
* @return bool
- * @deprecated 1.21
+ * @deprecated since 1.21
*/
public static function batchInsert( $jobs ) {
return JobQueueGroup::singleton()->push( $jobs );
*
* @param array $jobs of Job objects
* @return bool
- * @deprecated 1.21
+ * @deprecated since 1.21
*/
public static function safeBatchInsert( $jobs ) {
return JobQueueGroup::singleton()->push( $jobs, JobQueue::QOS_ATOMIC );
*
* @param $type string
* @return Job|bool Returns false if there are no jobs
- * @deprecated 1.21
+ * @deprecated since 1.21
*/
public static function pop_type( $type ) {
return JobQueueGroup::singleton()->get( $type )->pop();
* This is subject to $wgJobTypesExcludedFromDefaultQueue.
*
* @return Job or false if there's no jobs
- * @deprecated 1.21
+ * @deprecated since 1.21
*/
public static function pop() {
return JobQueueGroup::singleton()->pop();
/**
* @return integer May be 0 for jobs stored outside the DB
- * @deprecated 1.22
+ * @deprecated since 1.22
*/
public function getId() {
return $this->id;
/**
* Insert a single job into the queue.
* @return bool true on success
- * @deprecated 1.21
+ * @deprecated since 1.21
*/
public function insert() {
return JobQueueGroup::singleton()->push( $this );
);
$upload = new UploadFromStash( $user );
- // @TODO: initialize() causes a GET, ideally we could frontload the antivirus
+ // @todo initialize() causes a GET, ideally we could frontload the antivirus
// checks and anything else to the stash stage (which includes concatenation and
// the local file is thus already there). That way, instead of GET+PUT, there could
// just be a COPY operation from the stash to the public zone.
/**
* Constructor
*
- * @param $list LogEventsList
+ * @param LogEventsList $list
* @param string $types or Array: log types to show
* @param string $performer the user who made the log entries
* @param string|Title $title the page title the log entries are for
* @param string $pattern do a prefix search rather than an exact title match
* @param array $conds extra conditions for the query
- * @param $year Integer: the year to start from
- * @param $month Integer: the month to start from
+ * @param int $year The year to start from
+ * @param int $month The month to start from
* @param string $tagFilter tag
*/
public function __construct( $list, $types = array(), $performer = '', $title = '', $pattern = '',
$metadata = array( 'version' => self::SVG_METADATA_VERSION );
try {
$metadata += SVGMetadataExtractor::getMetadata( $filename );
- } catch ( MWException $e ) { // @TODO: SVG specific exceptions
+ } catch ( MWException $e ) { // @todo SVG specific exceptions
// File not found, broken, etc.
$metadata['error'] = array(
'message' => $e->getMessage(),
* @return Array
*/
public function getTestModuleNames( $framework = 'all' ) {
- /// @TODO: api siteinfo prop testmodulenames modulenames
+ /// @todo api siteinfo prop testmodulenames modulenames
if ( $framework == 'all' ) {
return $this->testModuleNames;
} elseif ( isset( $this->testModuleNames[$framework] ) && is_array( $this->testModuleNames[$framework] ) ) {
if ( !$this->fulltextSearchSupported() ) {
return;
}
- // @todo: find a method to do it in a single request,
+ // @todo find a method to do it in a single request,
// couldn't do it so far due to typelessness of FTS3 tables.
$dbw = wfGetDB( DB_MASTER );
'converttitles' => true,
'format' => 'json',
'titles' => $pageName,
- //@todo: options for maxlag and maxage
+ // @todo options for maxlag and maxage
// Note that maxlag will lead to a long delay before a reply is made,
// but that maxage can avoid the extreme delay. On the other hand
// maxage could be nice to use anyhow as it stops unnecessary requests.
$url = wfAppendQuery( $this->getFileUrl( 'api.php' ), $args );
// Go on call the external site
- //@todo: we need a good way to specify a timeout here.
+ // @todo we need a good way to specify a timeout here.
$ret = Http::get( $url );
}
public function onSuccess() {
if ( $this->getUser()->isAllowed( 'passwordreset' ) && $this->email != null ) {
- // @todo: Logging
+ // @todo Logging
if ( $this->result->isGood() ) {
$this->getOutput()->addWikiMsg( 'passwordreset-emailsent-capture' );
return;
}
- // @TODO: use FormOptions!
+ // @todo use FormOptions!
$defaults = array(
/* float */ 'days' => floatval( $user->getOption( 'watchlistdays' ) ), /* 3.0 or 0.5, watch further below */
/* bool */ 'hideMinor' => (int)$user->getBoolOption( 'watchlisthideminor' ),
wfProfileIn( __METHOD__ );
$repo = RepoGroup::singleton()->getLocalRepo();
if ( $repo->isVirtualUrl( $srcPath ) ) {
- // @TODO: just make uploads work with storage paths
+ // @todo just make uploads work with storage paths
// UploadFromStash loads files via virtual URLs
$tmpFile = $repo->getLocalCopy( $srcPath );
$tmpFile->bind( $this ); // keep alive with $this
$txt = $revision->getContent( Revision::RAW )->getNativeData();
}
- //@todo: in the future, use a specialized content model, perhaps based on json!
+ // @todo in the future, use a specialized content model, perhaps based on json!
}
}
}
'createacct-yourpasswordagain-ph' => 'Увядзіце пароль зноў',
'remembermypassword' => 'Запомніць мяне на гэтым кампутары (ня больш за $1 {{PLURAL:$1|дзень|дні|дзён}})',
'userlogin-remembermypassword' => 'Запамятаць мяне',
-'userlogin-signwithsecure' => 'УваÑ\85одзÑ\96Ñ\86Ñ\8c пÑ\80азÑ\8c бÑ\8fÑ\81Ñ\8cпеÑ\87нÑ\8b Ñ\81Ñ\8dÑ\80вÑ\8dÑ\80',
+'userlogin-signwithsecure' => 'СкаÑ\80Ñ\8bÑ\81Ñ\82аÑ\86Ñ\86а бÑ\8fÑ\81Ñ\8cпеÑ\87нÑ\8bм злÑ\83Ñ\87Ñ\8dнÑ\8cнем',
'securelogin-stick-https' => 'Утрымліваць злучэньне праз HTTPS пасьля ўваходу ў сыстэму',
'yourdomainname' => 'Ваш дамэн:',
'password-change-forbidden' => 'Вы ня можаце зьмяняць паролі ў гэтай вікі.',
'gotaccount' => 'Ужо маеце рахунак? $1.',
'gotaccountlink' => 'Увайдзіце',
'userlogin-resetlink' => 'Забыліся на зьвесткі для ўваходу?',
+'userlogin-resetpassword-link' => 'Забылі пароль?',
'helplogin-url' => 'Help:Уваход у сыстэму',
'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Дапамога па ўваходзе ў сыстэму]]',
'createacct-join' => 'Увядзіце свае зьвесткі ніжэй.',
'hidden-category-category' => 'Къайлаха йолу категореш',
'category-subcat-count' => '{{PLURAL:$2|ХӀокх категори чохь ю хӀокхуьна бухар категори.|{{PLURAL:$1|Гойташ $1 бухар категори|Гойту $1 бухар категори|Гойту $1 бухар категори}} оцу $2.}}',
'category-subcat-count-limited' => 'Хlокх категори чохь {{PLURAL:$1|$1 бухар категори|$1 бухар категореша|$1 бухар категореш}}.',
-'category-article-count' => '{{PLURAL:$2|ХӀокх категори чохь яц цхьа агӀо бе.|{{PLURAL:$1|Гойташ $1 агlо|Гойту $1 агӀонаш|Гойту $1 агӀонаш}} хӀокх категорешца кху $2.}}',
+'category-article-count' => '{{PLURAL:$2|ХӀокх категори чохь яц цхьа агӀо бе.|{{PLURAL:$1|Гойташ $1 агӀо|Гойту $1 агӀонаш|Гойту $1 агӀонаш}} хӀокх категорешца кху $2.}}',
'category-article-count-limited' => 'Хlокх категори чохь {{PLURAL:$1|$1 агlо|$1 агlонаш|$1 агlонаш}}.',
'category-file-count' => '{{PLURAL:$2|ХӀокх категори чохь цхьа хӀум бе яц.|{{PLURAL:$1|Гойта $1 хӀум|Гойту $1 хlума|Гойту $1 хlумнаш}} хlокх категорешца кху $2.}}',
'category-file-count-limited' => 'ХӀокх категори чохь {{PLURAL:$1|$1 файл|$1 хӀума|$1 файлаш}}.',
'filedeleteerror' => 'ДӀаяккха цатарло файл «$1».',
'badtitle' => 'Цамегаш йолу цlе',
'badtitletext' => 'Дехарца йолу агlонан цlе нийса яц, йаьсса ю, хила мега нийса ца хlоттийна меттаюкъар йа юкъарвики цlе. Хила мега, цlарца цамагош йолу саберг.',
+'perfcachedts' => 'Лахара хаам схьаэца кэша чура иза тӀаьхьара цӀинялла $1. Кэша чохь латтаё оцул $4 кӀезиг {{PLURAL:$4|дӀаяздарш|дӀаяздарш|дӀаяздарш}}.',
'viewsource' => 'Хьажар',
'protectedpagetext' => 'ХӀара агӀо дӀакъойлина йу рé цадаккхийта.',
'viewsourcetext' => 'Хьоьга далундерг хьажар а дезахь хlокху агlон чура йоза хьаэцар:',
'gotaccount' => "Дlавазвелла вуй хьо? '''$1'''.",
'gotaccountlink' => 'Вовзийта хьой',
'createaccountmail' => 'хааман зlене хула',
+'createaccountreason' => 'Бахьан:',
'loginerror' => 'Гlалат ду декъашхо вовзарехь',
'nocookiesforlogin' => '{{int:nocookieslogin}}',
'loginsuccesstitle' => 'Хьо вовзар хаз чакхдели',
Шуьга далундерг [[Special:Search/{{PAGENAME}}|лахар ишта хьехош йолу цlе]] кхечу яззамашкахь,
<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} лахар кхечу тептаршкахь],
йа '''[{{fullurl:{{FULLPAGENAME}}|action=edit}} кхолла ишта цlе йолу агlо]'''</span>.",
-'noarticletext-nopermission' => 'Хlокх хан чохь кху агlонца йоза дац.
-Шуьга далундерг [[Special:Search/{{PAGENAME}}|лахар ишта хьехош йолу цlе]] кхечу яззамашкахь,
+'noarticletext-nopermission' => 'ХӀокх хан чохь кху агӀонца йоза дац.
+Шуьга далундерг [[Special:Search/{{PAGENAME}}|лахар ишта хьехош йолу цӀе]] кхечу яззамашкахь,
йа <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} лаха оцуьнах терадерг кхечу тептаршкахь].</span>',
'userpage-userdoesnotexist' => 'Ишта дlайазвар «<nowiki>$1</nowiki>» хlинца дац. Хьажа билгал, хьуна бакъалла лаьи кхолла йа хийцам ба хlокху агlон.',
'updated' => '(Карла йаькхина)',
Адаманкуьйгалхочо сацийна гlирса бух, цо битина кхетош хlара хаам: $1",
'protectedpagewarning' => "'''Дlахьедар. Хlара агlо гlаролла дина ю хийцам цабайта, иза хийца йа нисйа а бакъо йолуш адаманкуьйгалла лелош болу декъашхой бе бац.'''
Лахахьа гойту хаамаш тlаьхьара бина болу хийцамна тептар чура:",
-'cascadeprotectedwarning' => "'''Дlахьедар:''' Хlокху агlонна редаккха бакъо йолуш хlара тоба йу «Адаманкуьйгалхой», хlунда аьлча иза латийна {{PLURAL:$1|кхечу агlонца|кхечу агlонашца}} хlоттделлачу гlароллийца:",
+'cascadeprotectedwarning' => '<div id="cascadeprotectedwarning" style="border:1px solid #ee0; padding:10px; background:#ffa; margin-bottom:1em">[[file:Padlock.svg|left|25px|ДовгӀа|link=]]
+ХӀара агӀо тада бакъо йолуш [[Project:Куьйгалхой|куьйгалхой]] бу, хӀунда аьлча и агӀо латийна кхечу агӀонашца хӀоттделлачу гӀаролле:</div>',
'templatesused' => '{{PLURAL:$1|Кеп, лелийна|Кепаш, лелош ду}} хlокху агlон башхонца:',
'templatesusedpreview' => '{{PLURAL:$1|Кеп, лелошдолу|Кепаш, лелошдолу}} оцу хьалх хьожучу агlонца:',
'template-protected' => '(гlароллийца)',
# Preferences page
'preferences' => 'Гlирс нисбан',
-'mypreferences' => 'Гlирс нисбан',
+'mypreferences' => 'ГӀирс нисбан',
'changepassword' => 'Хийцамба ишарна',
'skin-preview' => 'Хьалха муха ю хьажа',
'prefs-beta' => 'Гlоле таронаш',
'group' => 'Тоба:',
'group-user' => 'Декъашхой',
'group-bot' => 'Шаболххой',
-'group-sysop' => 'Ð\90даманкуьйгалхой',
+'group-sysop' => 'Ð\9aуьйгалхой',
'group-bureaucrat' => 'Даржахой',
'group-suppress' => 'Левисорхой',
'group-all' => '(массо)',
'group-user-member' => '{{GENDER:$1|декъашхо}}',
'group-bot-member' => 'шаболххо',
-'group-sysop-member' => 'адманкуьйгалхо',
+'group-sysop-member' => '{{GENDER:$1|куьйгалхо}}',
'group-bureaucrat-member' => 'даржахо',
'group-suppress-member' => 'левисорхо',
'filehist-user' => 'Декъашхо',
'filehist-dimensions' => 'Хlуман барам',
'filehist-comment' => 'Билгалдаккхар',
-'imagelinks' => 'Ð¥Ñ\8cажоÑ\80игаÑ\88 оÑ\86Ñ\83 Ñ\85lÑ\83ман',
+'imagelinks' => 'Ð¥Ñ\8cажоÑ\80игаÑ\88 оÑ\86Ñ\83 Ñ\84айлан',
'linkstoimage' => '{{PLURAL:$1|Тlаьхьайогlу $1 агlо тlетойжина|Тlаьхьайогlу $1 агlонаш тlетойжина|Тlаьхьайогlу $1 агlонаш тlетойжина}} хlокху хlуман:',
'sharedupload' => 'Хlара хlума оцун $1 чура ю иза хила мега лелош кхечу кхолламашкахь.',
'uploadnewversion-linktext' => 'Чуяккха керла башхо хlокху хlуман',
'shared-repo-name-wikimediacommons' => 'Викидlайуллуче',
# File reversion
+'filerevert-comment' => 'Бахьан:',
'filerevert-submit' => 'Юхаяккха',
# File deletion
{{#ifexist:{{TALKPAGENAME}}|ХӀокху агӀона ю '''[[{{TALKPAGENAME}}|дийцаре агӀо]].'''}}
</div>",
+'filedelete-comment' => 'Бахьан:',
'filedelete-submit' => 'ДӀаяккха',
'filedelete-otherreason' => 'Кхин бахьан:',
'filedelete-reason-otherlist' => 'Кхин бахьан',
'statistics-files' => 'Чуйаьхна хlумнаш',
'statistics-edits' => 'Нисдаран дукхалла {{grammar:genitive|{{SITENAME}}}} дlа йолайаларца',
'statistics-edits-average' => 'Йукъера агlонан нисдаран терхь',
+'statistics-users' => '[[ВП:Дlаязвалар|Дlаязбелларш]] шаберигге декъашхой чохь болу [[Special:ListUsers|(могlам)]]',
'statistics-users-active' => 'Жигар декъашхой',
'statistics-users-active-desc' => 'Декъашхой, муьлха цхьа хlум дина болу, кху {{PLURAL:$1|тlаьххьара $1 динахь|тlаьххьара $1 дийнахь}}',
'disambiguations' => 'Дуккха маьIнаш долу хьажорца йолу агIонаш',
+'disambiguationspage' => 'Куцкеп:цхьатера маьӀна доцуш',
'doubleredirects' => 'ШалгIа дIасахьажийнарш',
'double-redirect-fixed-move' => 'Агlон [[$1]] цlе хийцна, хlинца иза дlахьажийна оцу [[$2]]',
'listusers' => 'Декъашхой могlам',
'listusers-editsonly' => 'Цхаъ мукъане а хийцам бина декъашхой гайта',
'listusers-creationsort' => 'Кхолларан хене хьаьжна нисъяр',
+'usercreated' => '{{GENDER:$3|ДӀавазвелла}} $1 $2',
'newpages' => 'Керла агlонаш',
'newpages-username' => 'Декъашхо:',
'ancientpages' => 'Яззамаш оцу терахьца тяххьара тадар дина долу',
'move' => 'Цlе хийца',
'movethispage' => 'Хlокху агlон цlе хийца',
'unusedimagestext' => 'Дехар до, тидаме эца, кхин йолу дуьнана машан-меттигаш а лелош хила мега нисса йогlу хьажориг (URL) хlокху хlуман, хlокху могlаме йогlуш ялахь яцахь а иза хила мега жигара лелош.',
+'nopagetitle' => 'Ишта агӀо яц',
+'nopagetext' => 'Ишта агӀо яц.',
'pager-newer-n' => '{{PLURAL:$1|алсамо керла|алсамо керланаш|алсамо керлачарех}} $1',
'pager-older-n' => '{{PLURAL:$1|алсамо шира|алсамо ширниш|алсамо ширачарех}} $1',
'linksearch-line' => '$2 — хьажориг кху $1',
# Special:ListUsers
+'listusersfrom' => 'ТӀера волавелла декъашхой гайта:',
'listusers-submit' => 'Гайта',
# Special:ActiveUsers
'activeusers' => 'Жигар декъашхой могlам',
-'activeusers-from' => 'ТӀера волавелла декъашхой гайта',
+'activeusers-from' => 'ТӀера волавелла декъашхой гайта:',
# Special:ListGroupRights
'listgrouprights' => 'Декъашхойн тобанаши бакъонаш',
# Watchlist
'watchlist' => 'Тергаме могlам',
-'mywatchlist' => 'Тергаме могlам',
+'mywatchlist' => 'Тергаме могӀам',
'watchnologin' => 'Хьо вовзита веза гlирсан',
'addedwatchtext' => 'Хlар агlо «[[:$1]]» тlетоьхна хьан [[Special:Watchlist|тидаме могlам чу]].
Тlаьхьабогlу хийцамаш хlокх агlонна а кхунца дозуш долу дийцаре агlо а дlаяздийра ду кху могlамашкахь, ишта къастина хирду уьш шуьрочу элпашца хlокх агlон чохь [[Special:RecentChanges|керла хийцаме могlамашкахь]], бгlаьран га атту болуш.',
'exblank' => 'агlо йаьсса йара',
'delete-confirm' => '$1 — дӀаяккхар',
'delete-legend' => 'Дlадайáр',
+'historywarning' => "'''Тергам:''' хӀокху агӀона герггарчу хьесапехь $1 {{PLURAL:$1|версеш|верси|верси}} ю:",
'confirmdeletetext' => 'Хьан дехар ду хlара агlо ше бухци дlабайа аьлла (йа сурт) а массо цуьнан истори оцу бух чура. Дехар до, бакъде, билгала хьайна иза лаахь, кхеташ хира ву хьо тlаьхьа хир долу чун, иза деш ду ахьа бакъонца догlуш, вахьа дехкина долучу дакъанца [[{{MediaWiki:Policy-url}}]].',
'actioncomplete' => 'Дешдерг кхочушди',
'deletedtext' => '«$1» дlаяккхина йара.
'protect-default' => 'Гlаролла йоцуш',
'protect-fallback' => 'Бакъо оьшу «$1»',
'protect-level-autoconfirmed' => 'Гlаролла дé оцу керла а дlабазбина боцучу декъашхойх',
-'protect-level-sysop' => 'Ð\90дманкÑ\83Ñ\8cйгалÑ\85ой бé',
+'protect-level-sysop' => 'Ð\9aÑ\83Ñ\8cйгалÑ\85оÑ\88на бé Ñ\86амагдо',
'protect-summary-cascade' => 'чахчареца',
'protect-expiring' => 'чакхйолу $1 (UTC)',
'protect-expiry-indefinite' => 'хан чаккхе йоцуш',
Иштнарг хилча ахьа дlабаккха беза хlоттийна болу къастам йа хьагайта тlаьххьара дlайайина башхо.',
'undeletebtn' => 'МеттахӀоттае',
'undeletelink' => 'хьажа/метта хlоттаде',
+'undeleteviewlink' => 'хьажа',
'undeleteinvert' => 'Къастае массо',
'undeletecomment' => 'Бахьан:',
'undeletedrevisions' => '$1 {{PLURAL:$1|хийцамаш|хийцамаш|хийцамаш}} меттахӀоттайина',
'sp-contributions-newbies' => 'Гайта бекъ къинхьегам, керла дlабазбиначара бина болу',
'sp-contributions-blocklog' => 'сацораш',
'sp-contributions-deleted' => 'дӀадаьхна нийсдарш',
+'sp-contributions-uploads' => 'тӀетохар',
'sp-contributions-logs' => 'тéптарш',
'sp-contributions-talk' => 'дийцаре',
'sp-contributions-userrights' => 'декъашхочуьн бакъона урхалладар',
'whatlinkshere-title' => 'Агlонаш, хьажоригца оцу «$1»',
'whatlinkshere-page' => 'Агlо:',
'linkshere' => "Тlаьхьайогlу агlонаш хьажоригца ю оцу '''[[:$1]]''':",
+'nolinkshere' => "ХӀокху '''[[:$1]]''' агӀона тӀе кхечу агӀонашчохь хьажоригаш яц",
'isredirect' => 'агlо-дlасахьажайар',
'istemplate' => 'лата йe',
'isimage' => 'Оцу суьртан хьажориг',
'whatlinkshere-filters' => 'Литтарш',
# Block/unblock
+'block' => 'Декъашхо сацавар',
'blockip' => 'Сацаве',
+'blockip-legend' => 'Декъашхо сацавар',
'ipadressorusername' => 'IP-долу меттиг йа декъашхон цlе:',
+'ipbexpiry' => 'Хан чекхйолу:',
+'ipbreason' => 'Бахьан:',
'ipbreasonotherlist' => 'Кхин бахьан',
+'ipbcreateaccount' => 'Цамагдо дӀаязвалар',
+'ipbemailban' => 'Цамагдо декъашхошка хааман кехаташ кхехьийта',
+'ipbenableautoblock' => 'Сацае декъашхочо лелош йолу IP-адресаш',
+'ipbsubmit' => 'Сацаве декъашхо',
'ipboptions' => '2 сахьат:2 hours,1 де:1 day,3 де:3 days,1 кlиран:1 week,2 кlиран:2 weeks,1 бутт:1 month,3 бутт:3 months,6 бутт:6 months,1 шо:1 year,цlкъа:infinite',
+'ipbwatchuser' => 'ТӀетоха тергаме могӀам юкъа цуьнан долахь йолу агӀо а цуьнан дийцаре агӀо а',
+'ipb-disableusertalk' => 'Цамагдо шин дийцаре агӀо та я сацийна волучу хенахь',
+'ipb-confirm' => 'Бакъде сацавар',
'blockipsuccesssub' => 'Сацавар чакхдели',
'blockipsuccesstext' => '[[Special:Contributions/$1|«$1»]] сацийна ву.<br />
Хьажа. [[Special:BlockList|могlам сацийна IP-долу меттигаш]].',
'ipb-blocklist-contribs' => 'Декъашхон къинхьегам $1',
'unblocked' => '[[User:$1|$1]] хьайаьстина.',
'ipblocklist' => 'Сацийна IP-долу меттиг а дlалаьрра язбаларш',
+'blocklist-reason' => 'Бахьан:',
'ipblocklist-submit' => 'Лаха',
'blocklink' => 'сацаве',
'unblocklink' => 'хьаваста',
'pagemovedsub' => 'Агlон цlе хийцина',
'movepage-moved' => "'''Агlон цlе «$1» хийцина хlокху «$2»'''",
'movepage-moved-redirect' => 'Кхоьллина дӀасахьажориг.',
+'movepage-moved-noredirect' => 'ДӀасхьажориг кхоллар дохина.',
'articleexists' => 'Хlарасанна цlе йолу агlо йолуш ю йа ахьа гойтуш йолу цlе магош яц.
Дехар до, харжа кхин цlе.',
'talkexists' => "'''Агlон цlе хийцина йара, амма дийцаре агlон цlе хийца цало, хlунда аьльча иза санна цlе йолу агlо йолуш ю. Дехар до, куьйга хlотта уьш.'''",
# Special:Version
'version' => 'Варси MediaWiki',
+'version-other' => 'Кхин',
# Special:FileDuplicateSearch
'fileduplicatesearch' => 'Лаха цхьатера йолу хIумнаш',
'dberr-usegoogle' => 'Цlачун хьо хьажа лаха гlонца Google.',
'dberr-outofdate' => 'Хьуна хаалахь, цуьна йолу меттиг хила мега тишйелла черахь.',
+# HTML forms
+'htmlform-selectorother-other' => 'Кхин',
+
# New logging system
'logentry-delete-delete' => '$1 {{GENDER:$2|дӀаякхина|дӀаякхина}} агӀо $3',
'logentry-delete-restore' => '$1 {{GENDER:$2|меттахӀоттайина|меттахӀоттайина}} агӀо $3',
'createacct-yourpasswordagain-ph' => 'Zadejte heslo ještě jednou',
'remembermypassword' => 'Zapamatovat si mé přihlášení na tomto počítači (maximálně $1 {{PLURAL:$1|den|dny|dní}})',
'userlogin-remembermypassword' => 'Přihlásit trvale',
-'userlogin-signwithsecure' => 'Přihlášení na zabezpečený server',
+'userlogin-signwithsecure' => 'Používat zabezpečené připojení',
'securelogin-stick-https' => 'Zůstat po přihlášení připojen přes HTTPS',
'yourdomainname' => 'Vaše doména',
'password-change-forbidden' => 'Na této wiki nemůžete měnit hesla.',
'createacct-imgcaptcha-ph' => 'Opište výše zobrazený text',
'createacct-submit' => 'Vytvořit účet',
'createacct-benefit-heading' => '{{grammar:4sg|{{SITENAME}}}} tvoří lidé jako vy.',
-'createacct-benefit-body1' => '{{PLURAL:{{NUMBEROFEDITS:R}}|editace|editace|editací}}',
-'createacct-benefit-body2' => '{{PLURAL:{{NUMBEROFARTICLES:R}}|stránka|stránky|stránek}}',
-'createacct-benefit-body3' => '{{PLURAL:{{NUMBEROFACTIVEUSERS:R}}|nedávný přispěvatel|nedávní přispěvatelé|nedávných přispěvatelů}}',
+'createacct-benefit-body1' => '{{PLURAL:$1|editace|editace|editací}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|stránka|stránky|stránek}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|nedávný přispěvatel|nedávní přispěvatelé|nedávných přispěvatelů}}',
'badretype' => 'Vámi napsaná hesla nesouhlasí.',
'userexists' => 'Zadané uživatelské jméno se již používá.
Zvolte si prosím jiné jméno.',
'sessionfailure-title' => 'Chyba sezení',
'sessionfailure' => 'Zřejmě je nějaký problém s vaším přihlášením;
vámi požadovaná činnost byla stornována jako prevence před neoprávněným přístupem.
-Stiskněte tlačítko „zpět“, obnovte stránku, ze které jste přišli a zkuste činnost znovu.',
+Stiskněte tlačítko „zpět“, obnovte stránku, ze které jste přišli, a zkuste činnost znovu.',
# Protect
'protectlogpage' => 'Kniha zamčení',
# Edit pages
'summary' => 'Beskrivelse:',
'subject' => 'Emne/overskrift:',
-'minoredit' => 'Dette er en mindre ændring.',
+'minoredit' => 'Dette er en mindre ændring',
'watchthis' => 'Overvåg denne side',
'savearticle' => 'Gem side',
'preview' => 'Forhåndsvisning',
'gotaccount' => "Έχετε ήδη έναν λογαριασμό; '''$1'''.",
'gotaccountlink' => 'Είσοδος',
'userlogin-resetlink' => 'Ξεχάσατε τα στοιχεία σύνδεσής σας;',
+'userlogin-resetpassword-link' => 'Έκδοση νέου κωδικού πρόσβασης',
'helplogin-url' => 'Βοήθεια:Σύνδεση',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Βοήθεια για τη σύνδεσή σας]]',
+'createacct-join' => 'Εισάγετε τα στοιχεία σας παρακάτω.',
'createacct-emailrequired' => 'Διεύθυνση ηλεκτρονικού ταχυδρομείου',
+'createacct-emailoptional' => 'Διεύθυνση ηλεκτρονικού ταχυδρομείου (προαιρετικό)',
+'createacct-email-ph' => 'Εισάγετε το email σας',
'createaccountmail' => 'Χρήση τυχαίου προσωρινού κωδικού πρόσβασης και αποστολή του στη διεύθυνση ηλεκτρονικού ταχυδρομείου που καθορίζεται παρακάτω',
+'createacct-realname' => 'Πραγματικό όνομα (προαιρετικό)',
'createaccountreason' => 'Αιτία:',
'createacct-reason' => 'Λόγος',
-'createacct-captcha-help-url' => '{{ns:Project}}:Αίτημα για λογαριασμό',
+'createacct-reason-ph' => 'Γιατί δημιουργείτε έναν άλλο λογαριασμό',
+'createacct-captcha' => 'Έλεγχος ασφαλείας',
+'createacct-captcha-help-url' => '{{ns:Project}}:Κάντε αίτηση για σύνδεση',
+'createacct-imgcaptcha-help' => 'Δεν μπορειτε να δείτε την εικόνα; [[{{MediaWiki:createacct-captcha-βοήθεια-url}}|Κάντε αίτηση για σύνδεση]]',
'createacct-imgcaptcha-ph' => 'Εισαγωγή του κειμένου που βλέπετε παραπάνω',
'createacct-benefit-body1' => 'επεξεργασίες',
'createacct-benefit-body2' => 'σελίδες',
'virus-unknownscanner' => 'unknown antivirus:',
# Login and logout pages
-'logouttext' => "'''You are now logged out.'''
+'logouttext' => "'''You are now logged out.'''
You can continue to use {{SITENAME}} anonymously, or you can <span class='plainlinks'>[$1 log in again]</span> as the same or as a different user.
Note that some pages may continue to be displayed as if you were still logged in, until you clear your browser cache.",
-'welcomeuser' => 'Welcome, $1!',
-'welcomecreation-msg' => 'Your account has been created.
+'welcomeuser' => 'Welcome, $1!',
+'welcomecreation-msg' => 'Your account has been created.
Do not forget to change your [[Special:Preferences|{{SITENAME}} preferences]].',
-'yourname' => 'Username:',
-'userlogin-yourname' => 'Username',
-'userlogin-yourname-ph' => 'Enter your username',
+'yourname' => 'Username:',
+'userlogin-yourname' => 'Username',
+'userlogin-yourname-ph' => 'Enter your username',
'createacct-helpusername-url' => '{{ns:Project}}:Username_policy',
'createacct-helpusername-link' => '[[{{MediaWiki:createacct-helpusername-url}}|(help me choose)]]',
-'yourpassword' => 'Password:',
-'userlogin-yourpassword' => 'Password',
-'userlogin-yourpassword-ph' => 'Enter your password',
+'yourpassword' => 'Password:',
+'userlogin-yourpassword' => 'Password',
+'userlogin-yourpassword-ph' => 'Enter your password',
'createacct-yourpassword-ph' => 'Enter a password',
-'yourpasswordagain' => 'Retype password:',
+'yourpasswordagain' => 'Retype password:',
'createacct-yourpasswordagain' => 'Confirm password',
'createacct-yourpasswordagain-ph' => 'Enter password again',
-'remembermypassword' => 'Remember my login on this browser (for a maximum of $1 {{PLURAL:$1|day|days}})',
-'userlogin-remembermypassword' => 'Keep me logged in',
-'userlogin-signwithsecure' => 'Use secure connection',
-'securelogin-stick-https' => 'Stay connected to HTTPS after login',
-'yourdomainname' => 'Your domain:',
-'password-change-forbidden' => 'You cannot change passwords on this wiki.',
-'externaldberror' => 'There was either an authentication database error or you are not allowed to update your external account.',
-'login' => 'Log in',
-'nav-login-createaccount' => 'Log in / create account',
-'loginprompt' => 'You must have cookies enabled to log in to {{SITENAME}}.',
-'userlogin' => 'Log in / create account',
-'userloginnocreate' => 'Log in',
-'logout' => 'Log out',
-'userlogout' => 'Log out',
-'userlogout-summary' => '', # do not translate or duplicate this message to other languages
-'notloggedin' => 'Not logged in',
-'userlogin-noaccount' => "Don't have an account?",
-'userlogin-joinproject' => 'Join {{SITENAME}}',
-'nologin' => "Don't have an account? $1.",
-'nologinlink' => 'Create an account',
-'createaccount' => 'Create account',
-'gotaccount' => 'Already have an account? $1.',
-'gotaccountlink' => 'Log in',
-'userlogin-resetlink' => 'Forgotten your login details?',
-'userlogin-resetpassword-link' => 'Reset your password',
-'helplogin-url' => 'Help:Logging in',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Help with logging in]]',
+'remembermypassword' => 'Remember my login on this browser (for a maximum of $1 {{PLURAL:$1|day|days}})',
+'userlogin-remembermypassword' => 'Keep me logged in',
+'userlogin-signwithsecure' => 'Use secure connection',
+'securelogin-stick-https' => 'Stay connected to HTTPS after login',
+'yourdomainname' => 'Your domain:',
+'password-change-forbidden' => 'You cannot change passwords on this wiki.',
+'externaldberror' => 'There was either an authentication database error or you are not allowed to update your external account.',
+'login' => 'Log in',
+'nav-login-createaccount' => 'Log in / create account',
+'loginprompt' => 'You must have cookies enabled to log in to {{SITENAME}}.',
+'userlogin' => 'Log in / create account',
+'userloginnocreate' => 'Log in',
+'logout' => 'Log out',
+'userlogout' => 'Log out',
+'userlogout-summary' => '', # do not translate or duplicate this message to other languages
+'notloggedin' => 'Not logged in',
+'userlogin-noaccount' => "Don't have an account?",
+'userlogin-joinproject' => 'Join {{SITENAME}}',
+'nologin' => "Don't have an account? $1.",
+'nologinlink' => 'Create an account',
+'createaccount' => 'Create account',
+'gotaccount' => 'Already have an account? $1.',
+'gotaccountlink' => 'Log in',
+'userlogin-resetlink' => 'Forgotten your login details?',
+'userlogin-resetpassword-link' => 'Reset your password',
+'helplogin-url' => 'Help:Logging in',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Help with logging in]]',
'createacct-join' => 'Enter your information below.',
'createacct-emailrequired' => 'Email address',
'createacct-emailoptional' => 'Email address (optional)',
'createacct-email-ph' => 'Enter your email address',
-'createaccountmail' => 'Use a temporary random password and send it to the email address specified below',
+'createaccountmail' => 'Use a temporary random password and send it to the email address specified below',
'createacct-realname' => 'Real name (optional)',
-'createaccountreason' => 'Reason:',
+'createaccountreason' => 'Reason:',
'createacct-reason' => 'Reason',
'createacct-reason-ph' => 'Why you are creating another account',
'createacct-captcha' => 'Security check',
'createacct-captcha-help-url' => '{{ns:Project}}:Request an account',
-'createacct-imgcaptcha-help' => 'Can\'t see the image? [[{{MediaWiki:createacct-captcha-help-url}}|Request an account]]',
+'createacct-imgcaptcha-help' => "Can't see the image? [[{{MediaWiki:createacct-captcha-help-url}}|Request an account]]",
'createacct-imgcaptcha-ph' => 'Enter the text you see above',
'createacct-submit' => 'Create your account',
'createacct-benefit-heading' => '{{SITENAME}} is made by people like you.',
-'createacct-benefit-icon1' => 'icon-edits',
-'createacct-benefit-head1' => '{{NUMBEROFEDITS}}',
+'createacct-benefit-icon1' => 'icon-edits', # do not translate or duplicate this message to other languages
+'createacct-benefit-head1' => '{{NUMBEROFEDITS}}', # do not translate or duplicate this message to other languages
'createacct-benefit-body1' => '{{PLURAL:$1|edit|edits}}',
-'createacct-benefit-icon2' => 'icon-pages',
-'createacct-benefit-head2' => '{{NUMBEROFARTICLES}}',
+'createacct-benefit-icon2' => 'icon-pages', # do not translate or duplicate this message to other languages
+'createacct-benefit-head2' => '{{NUMBEROFARTICLES}}', # do not translate or duplicate this message to other languages
'createacct-benefit-body2' => '{{PLURAL:$1|page|pages}}',
-'createacct-benefit-icon3' => 'icon-contributors',
-'createacct-benefit-head3' => '{{NUMBEROFACTIVEUSERS}}',
+'createacct-benefit-icon3' => 'icon-contributors', # do not translate or duplicate this message to other languages
+'createacct-benefit-head3' => '{{NUMBEROFACTIVEUSERS}}', # do not translate or duplicate this message to other languages
'createacct-benefit-body3' => 'recent {{PLURAL:$1|contributor|contributors}}',
-'badretype' => 'The passwords you entered do not match.',
-'userexists' => 'Username entered already in use.
+'badretype' => 'The passwords you entered do not match.',
+'userexists' => 'Username entered already in use.
Please choose a different name.',
-'loginerror' => 'Login error',
-'createacct-error' => 'Account creation error',
-'createaccounterror' => 'Could not create account: $1',
-'nocookiesnew' => 'The user account was created, but you are not logged in.
+'loginerror' => 'Login error',
+'createacct-error' => 'Account creation error',
+'createaccounterror' => 'Could not create account: $1',
+'nocookiesnew' => 'The user account was created, but you are not logged in.
{{SITENAME}} uses cookies to log in users.
You have cookies disabled.
Please enable them, then log in with your new username and password.',
-'nocookieslogin' => '{{SITENAME}} uses cookies to log in users.
+'nocookieslogin' => '{{SITENAME}} uses cookies to log in users.
You have cookies disabled.
Please enable them and try again.',
-'nocookiesfornew' => 'The user account was not created, as we could not confirm its source.
+'nocookiesfornew' => 'The user account was not created, as we could not confirm its source.
Ensure you have cookies enabled, reload this page and try again.',
-'nocookiesforlogin' => '{{int:nocookieslogin}}', # only translate this message to other languages if you have to change it
-'noname' => 'You have not specified a valid username.',
-'loginsuccesstitle' => 'Login successful',
-'loginsuccess' => "'''You are now logged in to {{SITENAME}} as \"\$1\".'''",
-'nosuchuser' => 'There is no user by the name "$1".
+'nocookiesforlogin' => '{{int:nocookieslogin}}', # only translate this message to other languages if you have to change it
+'noname' => 'You have not specified a valid username.',
+'loginsuccesstitle' => 'Login successful',
+'loginsuccess' => "'''You are now logged in to {{SITENAME}} as \"\$1\".'''",
+'nosuchuser' => 'There is no user by the name "$1".
Usernames are case sensitive.
Check your spelling, or [[Special:UserLogin/signup|create a new account]].',
-'nosuchusershort' => 'There is no user by the name "$1".
+'nosuchusershort' => 'There is no user by the name "$1".
Check your spelling.',
-'nouserspecified' => 'You have to specify a username.',
-'login-userblocked' => 'This user is blocked. Login not allowed.',
-'wrongpassword' => 'Incorrect password entered.
+'nouserspecified' => 'You have to specify a username.',
+'login-userblocked' => 'This user is blocked. Login not allowed.',
+'wrongpassword' => 'Incorrect password entered.
Please try again.',
-'wrongpasswordempty' => 'Password entered was blank.
+'wrongpasswordempty' => 'Password entered was blank.
Please try again.',
-'passwordtooshort' => 'Passwords must be at least {{PLURAL:$1|1 character|$1 characters}}.',
-'password-name-match' => 'Your password must be different from your username.',
-'password-login-forbidden' => 'The use of this username and password has been forbidden.',
-'mailmypassword' => 'Email new password',
-'passwordremindertitle' => 'New temporary password for {{SITENAME}}',
-'passwordremindertext' => 'Someone (probably you, from IP address $1) requested a new
+'passwordtooshort' => 'Passwords must be at least {{PLURAL:$1|1 character|$1 characters}}.',
+'password-name-match' => 'Your password must be different from your username.',
+'password-login-forbidden' => 'The use of this username and password has been forbidden.',
+'mailmypassword' => 'Email new password',
+'passwordremindertitle' => 'New temporary password for {{SITENAME}}',
+'passwordremindertext' => 'Someone (probably you, from IP address $1) requested a new
password for {{SITENAME}} ($4). A temporary password for user
"$2" has been created and was set to "$3". If this was your
intent, you will need to log in and choose a new password now.
If someone else made this request, or if you have remembered your password,
and you no longer wish to change it, you may ignore this message and
continue using your old password.',
-'noemail' => 'There is no email address recorded for user "$1".',
-'noemailcreate' => 'You need to provide a valid email address.',
-'passwordsent' => 'A new password has been sent to the email address registered for "$1".
+'noemail' => 'There is no email address recorded for user "$1".',
+'noemailcreate' => 'You need to provide a valid email address.',
+'passwordsent' => 'A new password has been sent to the email address registered for "$1".
Please log in again after you receive it.',
-'blocked-mailpassword' => 'Your IP address is blocked from editing, and so is not allowed to use the password recovery function to prevent abuse.',
-'eauthentsent' => 'A confirmation email has been sent to the nominated email address.
+'blocked-mailpassword' => 'Your IP address is blocked from editing, and so is not allowed to use the password recovery function to prevent abuse.',
+'eauthentsent' => 'A confirmation email has been sent to the nominated email address.
Before any other email is sent to the account, you will have to follow the instructions in the email, to confirm that the account is actually yours.',
-'throttled-mailpassword' => 'A password reset email has already been sent, within the last {{PLURAL:$1|hour|$1 hours}}.
+'throttled-mailpassword' => 'A password reset email has already been sent, within the last {{PLURAL:$1|hour|$1 hours}}.
To prevent abuse, only one password reset email will be sent per {{PLURAL:$1|hour|$1 hours}}.',
-'loginstart' => '', # do not translate or duplicate this message to other languages
-'loginend' => '', # do not translate or duplicate this message to other languages
-'loginend-https' => '', # do not translate or duplicate this message to other languages
-'signupstart' => '{{int:loginstart}}', # do not translate or duplicate this message to other languages
-'signupend' => '{{int:loginend}}', # do not translate or duplicate this message to other languages
-'signupend-https' => '', # do not translate or duplicate this message to other languages
-'mailerror' => 'Error sending mail: $1',
-'acct_creation_throttle_hit' => 'Visitors to this wiki using your IP address have created {{PLURAL:$1|1 account|$1 accounts}} in the last day, which is the maximum allowed in this time period.
+'loginstart' => '', # do not translate or duplicate this message to other languages
+'loginend' => '', # do not translate or duplicate this message to other languages
+'loginend-https' => '', # do not translate or duplicate this message to other languages
+'signupstart' => '{{int:loginstart}}', # do not translate or duplicate this message to other languages
+'signupend' => '{{int:loginend}}', # do not translate or duplicate this message to other languages
+'signupend-https' => '', # do not translate or duplicate this message to other languages
+'mailerror' => 'Error sending mail: $1',
+'acct_creation_throttle_hit' => 'Visitors to this wiki using your IP address have created {{PLURAL:$1|1 account|$1 accounts}} in the last day, which is the maximum allowed in this time period.
As a result, visitors using this IP address cannot create any more accounts at the moment.',
-'emailauthenticated' => 'Your email address was authenticated on $2 at $3.',
-'emailnotauthenticated' => 'Your email address is not yet authenticated.
+'emailauthenticated' => 'Your email address was authenticated on $2 at $3.',
+'emailnotauthenticated' => 'Your email address is not yet authenticated.
No email will be sent for any of the following features.',
-'noemailprefs' => 'Specify an email address in your preferences for these features to work.',
-'emailconfirmlink' => 'Confirm your email address',
-'invalidemailaddress' => 'The email address cannot be accepted as it appears to have an invalid format.
+'noemailprefs' => 'Specify an email address in your preferences for these features to work.',
+'emailconfirmlink' => 'Confirm your email address',
+'invalidemailaddress' => 'The email address cannot be accepted as it appears to have an invalid format.
Please enter a well-formatted address or empty that field.',
-'cannotchangeemail' => 'Account email addresses cannot be changed on this wiki.',
-'emaildisabled' => 'This site cannot send emails.',
-'accountcreated' => 'Account created',
-'accountcreatedtext' => 'The user account for $1 has been created.',
-'createaccount-title' => 'Account creation for {{SITENAME}}',
-'createaccount-text' => 'Someone created an account for your email address on {{SITENAME}} ($4) named "$2", with password "$3".
+'cannotchangeemail' => 'Account email addresses cannot be changed on this wiki.',
+'emaildisabled' => 'This site cannot send emails.',
+'accountcreated' => 'Account created',
+'accountcreatedtext' => 'The user account for $1 has been created.',
+'createaccount-title' => 'Account creation for {{SITENAME}}',
+'createaccount-text' => 'Someone created an account for your email address on {{SITENAME}} ($4) named "$2", with password "$3".
You should log in and change your password now.
You may ignore this message, if this account was created in error.',
-'usernamehasherror' => 'Username cannot contain hash characters',
-'login-throttled' => 'You have made too many recent login attempts.
+'usernamehasherror' => 'Username cannot contain hash characters',
+'login-throttled' => 'You have made too many recent login attempts.
Please wait before trying again.',
-'login-abort-generic' => 'Your login was unsuccessful - Aborted',
-'loginlanguagelabel' => 'Language: $1',
-'loginlanguagelinks' => '* {{#language:de}}|de
+'login-abort-generic' => 'Your login was unsuccessful - Aborted',
+'loginlanguagelabel' => 'Language: $1',
+'loginlanguagelinks' => '* {{#language:de}}|de
* {{#language:en}}|en
* {{#language:eo}}|eo
* {{#language:fr}}|fr
* {{#language:es}}|es
* {{#language:it}}|it
* {{#language:nl}}|nl', # do not translate or duplicate this message to other languages
-'suspicious-userlogout' => 'Your request to log out was denied because it looks like it was sent by a broken browser or caching proxy.',
+'suspicious-userlogout' => 'Your request to log out was denied because it looks like it was sent by a broken browser or caching proxy.',
# Email sending
'pear-mail-error' => '$1', # do not translate or duplicate this message to other languages
'oldpassword' => 'Old password:',
'newpassword' => 'New password:',
'retypenew' => 'Retype new password:',
-'resetpass-abort-generic' => 'Password change has been aborted by an extension.',
'resetpass_submit' => 'Set password and log in',
'resetpass_success' => 'Your password has been changed successfully!
Now logging you in...',
'resetpass-wrong-oldpass' => 'Invalid temporary or current password.
You may have already successfully changed your password or requested a new temporary password.',
'resetpass-temp-password' => 'Temporary password:',
+'resetpass-abort-generic' => 'Password change has been aborted by an extension.',
# Special:PasswordReset
'passwordreset' => 'Reset password',
'friday-at' => 'Friday at $1',
'saturday-at' => 'Saturday at $1',
'sunday-at' => 'Sunday at $1',
-'today-at' => '$1',
+'today-at' => '$1', # do not translate or duplicate this message to other languages
'yesterday-at' => 'Yesterday at $1',
# Bad image list
'version-entrypoints-load-php' => '[https://www.mediawiki.org/wiki/Manual:load.php load.php]', # do not translate or duplicate this message to other languages
# Special:Redirect
-'redirect' => 'Redirect by file, user, or revision ID',
-'redirect-legend' => 'Redirect to a file or page',
-'redirect-text' => '',
-'redirect-summary' => 'This special page redirects to a file (given the file name), a page (given a revision ID), or a user page (given a numeric user ID).',
-'redirect-submit' => 'Go',
-'redirect-lookup' => 'Lookup:',
-'redirect-value' => 'Value:',
-'redirect-user' => 'User ID',
-'redirect-revision' => 'Page revision',
-'redirect-file' => 'File name',
+'redirect' => 'Redirect by file, user, or revision ID',
+'redirect-legend' => 'Redirect to a file or page',
+'redirect-text' => '', # do not translate or duplicate this message to other languages
+'redirect-summary' => 'This special page redirects to a file (given the file name), a page (given a revision ID), or a user page (given a numeric user ID).',
+'redirect-submit' => 'Go',
+'redirect-lookup' => 'Lookup:',
+'redirect-value' => 'Value:',
+'redirect-user' => 'User ID',
+'redirect-revision' => 'Page revision',
+'redirect-file' => 'File name',
'redirect-not-exists' => 'Value not found',
# Special:FileDuplicateSearch
'internalerror' => '內部差錯',
'internalerror_info' => '內部差錯:$1',
'fileappenderrorread' => '附加當時無辦法讀取「$1」。',
-'fileappenderror' => '無辦法附加「$1」到「$2」。',
+'fileappenderror' => '無辦法附加“$1”到“$2”。',
'filecopyerror' => '文件“$1”無辦法複製到“$2”。',
'filerenameerror' => '文件“$1”到無辦法重新命名到“$2”。',
'filedeleteerror' => '刪除毋到“$1”文件。',
-'directorycreateerror' => '無辦法建立目錄「$1」。',
+'directorycreateerror' => '無辦法建立目錄“$1”。',
'filenotfound' => '尋毋到“$1”文件。',
'fileexistserror' => '無法寫入文件“$1”:文件已存在',
'unexpected' => '毋正常數值:"$1"="$2"。',
$2',
'namespaceprotected' => "汝還無權限編輯'''$1'''名字空間嘅頁面。",
'customcssprotected' => '汝還無權限編輯邇隻CSS頁面,因為其包含矣其他用戶嘅個人設置。',
-'customjsprotected' => '你還無權限去編輯邇隻JavaScript頁面,因為其包含矣另一用戶嘅個人設定。',
+'customjsprotected' => '汝還無權限去編輯邇隻JavaScript頁面,因為其包含矣另一用戶嘅個人設定。',
'ns-specialprotected' => '邇兜特殊頁面係毋做得編輯嘅。',
'titleprotected' => "邇隻標題已經分[[User:$1|$1]]保護來防止建立。理由係''$2''。",
'filereadonlyerror' => '無辦法修改文件「$1」因為文件庫「$2」處於唯讀模式。 !
'mailerror' => '發送郵件出差錯:$1',
'acct_creation_throttle_hit' => '在邇隻wiki上係話訪客利用汝个IP地址在昨天創建矣$1個賬戶,係在邇段時間肚的上限。
結果利用這個IP地址个訪客在邇段時間中無辦法創建更多个賬戶。',
-'emailauthenticated' => '汝个電郵地址已經於$2 $3確認有效。',
+'emailauthenticated' => '汝嘅電郵地址已經於$2 $3確認有效。',
'emailnotauthenticated' => '汝嘅郵箱地址<strong>還無分認証</strong>。以下功能將毋會發送任何郵件。',
'noemailprefs' => '在嘅嘅偏好設定肚指定一隻電子郵件地址來使用邇隻功能。',
'emailconfirmlink' => '確認汝嘅郵箱地址',
'accountcreated' => '已建立賬戶',
'accountcreatedtext' => '$1嘅賬戶已經分建立。',
'createaccount-title' => '在{{SITENAME}}肚建立新賬戶',
-'createaccount-text' => '有人在{{SITENAME}}中利用汝嘅電郵創建矣一隻喊做 "$2" 嘅新賬戶($4),密碼係 "$3" 。汝應該立即登入並更改密碼。
+'createaccount-text' => '有人在{{SITENAME}}肚利用汝嘅電郵創建矣一隻喊做 "$2" 嘅新賬戶($4),密碼係 "$3" 。汝應該立即登入並更改密碼。
如果該賬戶建立錯誤嘅話,汝可以忽略邇條訊息。',
'usernamehasherror' => '用戶名毋可以包含Hash字符',
請等陣再試。',
'login-abort-generic' => '登入錯誤 - 中止',
'loginlanguagelabel' => '語言:$1',
-'suspicious-userlogout' => 'æ\82¨登出嘅要求已經分拒絕,因為其可能係由已損壞嘅瀏覽器或者緩存代理傳送。',
+'suspicious-userlogout' => 'æ±\9d登出嘅要求已經分拒絕,因為其可能係由已損壞嘅瀏覽器或者緩存代理傳送。',
# Email sending
'php-mail-error-unknown' => '在PHP嘅mail()參數肚嘅未知錯誤',
'passwordreset-pretext' => '{{PLURAL:$1||輸入下列其中一隻}}',
'passwordreset-username' => '用戶名:',
'passwordreset-domain' => '域名:',
-'passwordreset-capture' => '查看生成个電子郵件係無?',
-'passwordreset-capture-help' => 'ä¿\82話汝選中邇隻框,電子郵件(包括臨時密碼)將顯示,並發送分用戶。',
+'passwordreset-capture' => '查看生成嘅電子郵件係無?',
+'passwordreset-capture-help' => 'ä¿\82è¬\9b汝選中邇隻框,電子郵件(包括臨時密碼)將顯示,並發送分用戶。',
'passwordreset-email' => '電郵地址:',
'passwordreset-emailtitle' => '在{{SITENAME}}上嘅詳細信息',
'passwordreset-emailsent' => '密碼重置電子郵件已發送。',
'missingsummary' => "'''提示:''' 汝無提供一隻編寫摘要。假使汝再次單擊「{{int:savearticle}}」,汝嘅編寫將毋帶編寫摘要保存。",
'missingcommenttext' => '請在下背輸入評論。',
'missingcommentheader' => "'''提示:''' 汝還無為邇條評論提供一隻標題。假使汝再次單擊「{{int:savearticle}}」,您嘅編寫將毋帶標題保存。",
-'summary-preview' => 'Chak-yeu yi-ko:',
-'subject-preview' => 'Chú-thì/phêu-thì yi-ko:',
-'blockedtitle' => 'Yung-fu pûn chhà-fûng',
+'summary-preview' => '摘要預覽:',
+'subject-preview' => '主題/標題預覽:',
+'blockedtitle' => '用戶分查封',
'blockedtext' => "Ngì-ke yung-fu-miàng fe̍t-chá IP thi-tiám yí-kîn pûn $1 chhà-fûng.
Liá-chhṳ chhà-fûng he yù $1 só fûng ke. Tông-chûng ke ngièn-yîn he ''$2''. Ngì khó-yî lièn-lo̍k $1 fe̍t-chá khì-thâ ke [[{{MediaWiki:Grouppage-sysop}}|Kón-lî-yèn]], thó-lun liá-chhṳ ke chhà-fûng. Chhù-fî ngì yí-kîn chhai ngì-ke [[Special:Preferences|Chong-ho chhâm-su sat-chṳ]] chûng sat-thin liáu yit-ke yû-háu ke email, féu-chet ngì-he put-nèn sṳ́-yung “email liá-vi yung-fu” ke kûng-yung. Ngì-ke IP thi-tiám he $3, yì-yèn ke chhà-fûng ID he #$5. Chhiáng ngì chhai só-yû chhà-chhìm chûng chu-mìn liá-ke thi-tiám khi̍p/fe̍t-he chhà-fûng ID.",
'autoblockedtext' => 'Ngì-ke IP thi-tiám yí-kîn pûn chhṳ-thung chhà-fûng, lî-yù he siên-chhièn ke nang yit-vi yung-fu pûn $1 só chhà-fûng. Yì-yèn chhà-fûng ke ngièn-yîn he: \'\'$2\'\' liá-chhṳ chhà-fûng ke khì-kiên he: $6 ngì khó-yî lièn-lo̍k $1 fe̍t-chá khì-thâ ke [[{{MediaWiki:Grouppage-sysop}}|kón-lî-yèn]], thó-lun liá-chhṳ chhà-fûng. Chhù-fî ngì yí-kîn chhai ngì-ke [[Special:Preferences|chong-ho chhâm-su sat-chṳ]] chûng sat-thin yit-ke yû-háu ke email thi-tiám, féu-chet ngì-he put-nèn sṳ́-yung "email liá-vi yung-fu" ke kûng-nèn. Ngì-ke chhà-fûng ID he $5. Chhiáng ngì chhai só-yû thiàu-chhà chûng chu-mìn liá-ke chhà-fûng ID.',
-'whitelistedittext' => 'Ngì pit-sî siên $1 chhòi-nèn phiên-siá vùn-chông.',
-'confirmedittext' => 'Chhai phiên-cho chhṳ́-chông chṳ̂-chhièn pit-sî khok-ngin ngì-ke email thi-tiám. Chhiáng theu-ko [[Special:Preferences|chhâm-su sat-thin]] sat-thin pin ngiam-chṳn ngì-ke email thi-tiám.',
+'whitelistedittext' => '汝必須先$1正做得編寫頁面。',
+'confirmedittext' => '在編寫邇頁之前汝必須確認汝嘅郵箱地址。請通過[[Special:Preferences|偏好設定]]設定並驗證汝嘅郵箱地址。',
'nosuchsectiontitle' => 'Mò-yû liá-ke thon-lo̍k',
'nosuchsectiontext' => 'Ngì sòng-chhṳ phiên-cho ke thon-lo̍k pin-put chhùn-chhai.',
-'loginreqtitle' => 'Sî-yeu Tên-ngi̍p',
-'loginreqlink' => 'tên-ngi̍p',
-'loginreqpagetext' => 'Ngì pit-sî $1 chhòi-nèn kiám-sṳ khì-thâ vùn-chông.',
-'accmailtitle' => 'Pi-Me̍t yí-kîn ki-chhut.',
+'loginreqtitle' => '愛登入',
+'loginreqlink' => '登入',
+'loginreqpagetext' => '汝必須$1正做得查看其他頁面。',
+'accmailtitle' => '密碼已經寄出',
'accmailtext' => "'$1' ke pi-me̍t yí-kîn ki-kî to $2.",
'newarticle' => '(新)',
-'newarticletext' => 'æ\82¨入到矣一隻還吂建立嘅頁面。
+'newarticletext' => 'æ±\9d入到矣一隻還吂建立嘅頁面。
愛建立本頁面,請在下面嘅編寫框肚輸入內容(詳情參詳[[{{MediaWiki:Helppage}}|幫手]])。
係講汝係毋小心來到本頁面,直接點擊汝嘅瀏覽器肚嘅“轉頭”撳掣轉頭。',
'anontalkpagetext' => "---- ''Liá-he yit-ke hàn-mò kien-li̍p chong-ho ke ngia̍k-miàng yung-fu ke tui-fa-hong. Só-yî chṳ́-nèn yung IP thi-tiám lòi lâu kí lièn-lo̍k. Ke-IP thi-tiám khó-nèn yù-chhai kí-miàng yung-fu khiung-hióng. Kó-yèn ngì-he yit-miàng ngia̍k-miàng yung-fu ngin-vì pún-hong song ke phìn-lî kiên ngì mò-kôan, chhiáng [[Special:UserLogin|Chhóng-kien sîn chong-ho fe̍t-chá Tên-ngi̍p]] khó-yî phit-miên lòi-yì khì-thâ ngia̍k-miàng yung-fu ke fun-lon.''",
或[{{fullurl:{{FULLPAGENAME}}|action=edit}} 編寫邇頁]</span>。',
'noarticletext-nopermission' => '邇頁當前無內容。
汝做得在其它頁[[Special:Search/{{PAGENAME}}|搜尋邇頁標題]],或者<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜尋有關日誌]</span>,但汝無權限建立邇頁。',
-'userpage-userdoesnotexist' => 'Sṳ́-yung-tsá tsong-ho "<nowiki>$1</nowiki>" hàn-mò kien-li̍p.
-Tshiáng chhai kien-li̍p/piên-sip liá-ke vùn-tsông tshièn siên kiám-tshà yit-ha-é.',
+'userpage-userdoesnotexist' => '用戶帳號“$1:還吂註冊。
+請在建立/編寫邇隻頁面前先檢查一下。',
'clearyourcache' => "'''Chu-yi:''' Chhai tú-chhùn yî-heu, ngì pit-sî khoai chhái-chhí chhîn-chhù hi-khí chhòi-nèn khon-tó chok-chhut ke kói-pien. '''Mozilla / Firefox / Safari:''' on-tén ''Shift'' chai tiám-kit '' Chhùng-sîn chṳ́n-lî ''(fe̍t-chá on-hâ ''Ctrl-Shift-R'', chhai Phìn-kó Mac song on-hâ ''Cmd-Shift-R''); '''IE:''' on-tén ''Ctrl'' chai tiám-kit ''Chhùng-sîn chṳ́n-lî'', fe̍t-he on-hâ ''Ctrl-F5'';'''Konqueror:''' chak sî-yeu tiám-kit ''Chhùng-sîn chṳ́n-lî''; '''Opera:''' yung-fu sî-yeu chhai ''kûng-khí-sat-thin'' chûng vàn-cháng-thi chhîn-chhù ke khoai-chhí.",
'usercssyoucanpreview' => "'''Thì-sṳ:''' Chhai pó-chhùn chhièn chhiáng yung 'hién-sṳ yi-ko' on-néu lòi chhet-chhṳ ngì sîn-ke CSS.",
'userjsyoucanpreview' => "'''Thì-sṳ:''' Chhai pó-chhùn chhièn chhiáng yung 'hién-sṳ yi-ko' on-néu lòi chhet-chhṳ ngì sîn-ke JS.",
'usercsspreview' => "'''Chu-yi ngì chak-he chhai yi-liau ngì ke-ngìn CSS, hàn-mò tú-chhùn!'''",
-'userjspreview' => "'''Chu-yi ngì chak-he chhai chhet-chhṳ / yi-liau ngì ke-ngìn JavaScript, hàn-mò tú-chhùn!'''",
-'userinvalidcssjstitle' => "'''Kín-ko:''' Put chhùn-chhai mien-pán \"\$1\". chu-yi chhṳ-thin ke .css lâu .js hong yeu sṳ́-yung séu-siá phêu-thì, yì-yi, {{ns:user}}:Foo/vector.css put-thùng yî {{ns:user}}:Foo/Vector.css.",
+'userjspreview' => "'''記緊汝單單係在測試/預覽汝嘅用戶JavaScript。'''
+'''還吂保存!'''",
+'userinvalidcssjstitle' => "'''警告:''' 毋存在外皮“$1”。
+注意自定嘅.css撈.js頁愛使用小寫標題,例如,{{ns:user}}:Foo/vector.css撈 {{ns:user}}:Foo/Vector.css毋同。",
'updated' => '(已經更新)',
'note' => "'''注意:'''",
'previewnote' => "'''請記到邇單淨係預覽。'''
汝嘅更改還吂保存!",
'previewconflict' => '邇隻預覽展示矣上片文字編寫區肚嘅內容。其將在汝選擇保存後出現。',
-'session_fail_preview' => "'''好抱歉!由於部份數據遺失,亻厓兜無法處理汝嘅編寫。'''
-請再試一次。
+'session_fail_preview' => "'''好抱歉!由於部份數據遺失,𠊎兜無辦法處理汝嘅編寫。'''
+請試多一擺。
係講還係失敗,請[[Special:UserLogout|登出]]後重新登入。",
'session_fail_preview_html' => "'''Chṳ̂n tui-put-hí! Phu-fun chṳ̂-liau yí-kîn yì-sṳt, mò-fap chhú-lî ngì-ke phiên-siá.'''
'''單淨'''在上片文字框肚嘅內容會在汝點擊「{{int:savearticle}}」後分保存。",
'yourtext' => '汝嘅文字',
'storedversion' => '已保存嘅修訂版本',
-'nonunicodebrowser' => "'''警告: 汝嘅瀏覽器毋兼容Unicode編碼。'''邇肚有一隻工作區將使汝做得安全編寫頁面: 非ASCII字符將以十六進製編碼模式出現在編輯框肚。",
+'nonunicodebrowser' => "'''警告: 汝嘅瀏覽器毋兼容Unicode編碼。'''邇位有一隻工作區將使汝做得安全編寫頁面: 非ASCII字符將以十六進製編碼模式出現在編輯框肚。",
'editingold' => "'''警告:汝在編輯中嘅係本頁嘅舊版本。'''
係講汝保存其嘅話,在本版本之後嘅任何更改都會遺失。",
'yourdiff' => '差別',
'copyrightwarning2' => "請注意汝對{{SITENAME}}嘅所有貢獻
都可能分其他貢獻人編寫、修改或刪除。
係講汝毋希望您嘅文字分任意修改撈再散佈,請毋好提交。<br />
-汝同時也愛向亻厓兜保證汝所提交嘅內容係自家所作,或得自一隻毋受版權保護或相似自由嘅來源(參閱$1的細節)。
+汝同時也愛向𠊎兜保證汝所提交嘅內容係自家所作,或得自一隻毋受版權保護或相似自由嘅來源(參閱$1的細節)。
'''毋好在未獲授權嘅情況下發表!'''",
'longpageerror' => "'''Chho-ngu: Ngì só thì-kâu ke vùn-sṳ chhòng-thu yû $1KB, liá thai-yî $2KB ke chui-thai chhṳ̍t, ke-vùn-chông put-nèn pûn tú-chhùn.'''",
'readonlywarning' => "'''Kín-ko: chṳ̂-liau-khu pûn-ngìn fûng-só yîn-vi chin-hàng vì-fu, só-yî muk-chhièn mò-fap pó-chhùn ngì-ke siù-chho. Ngì fe̍t-hí hî-mong chhai-siên chiông pún-thon vùn-sṳ fu̍k-chṳ pin pó-chhùn to vùn-sṳ vùn-khien, yèn-heu tén-yit-ha chai siù-chho.'''",
'log-fulllog' => '查看完整日誌',
'edit-hook-aborted' => '編寫分鈎取消。
其並無分出解釋。',
-'edit-gone-missing' => 'Vù-nèn kiên-sîn vùn-tsông. Khó-nèn kông pûn-ngìn tshù-thet.',
+'edit-gone-missing' => '毋做得更新頁面。
+其可能正正分刪除。',
'edit-conflict' => '編寫衝突。',
-'edit-no-change' => 'Piên-sip yí-kîn pûn fut-lio̍k, yîn-vi vùn-sṳ mò ngim-hò kói-pien.',
-'edit-already-exists' => 'Put-nèn kien-li̍p yit-ke sîn vùn-tsông. Têu yí-kîn tshùn-tshai.',
+'edit-no-change' => '汝嘅編寫已經略過,因為文字無任何改動。',
+'edit-already-exists' => '毋做得建立一隻新頁面。
+其已經存在。',
'defaultmessagetext' => '默認消息文字',
'invalid-content-data' => '無效嘅數據內容',
'revdel-restore' => '更改可見性',
'revdel-restore-deleted' => '已刪除嘅修訂版本',
'revdel-restore-visible' => '見得到嘅修訂版本',
-'pagehist' => 'Vùn-tsông li̍t-sṳ́',
-'deletedhist' => 'Yí-kîn tshù-me̍t ke li̍t-sṳ́',
+'pagehist' => '頁面歷史',
+'deletedhist' => '已刪除嘅歷史',
# Suppression log
-'suppressionlog' => 'Fi-tsṳ́ ngit-péu',
+'suppressionlog' => '監督日誌',
# History merging
-'mergehistory' => 'Ha̍p-yit siû-tsáng ki-liu̍k',
-'mergehistory-from' => 'Lòi-ngièn vùn-tsông:',
-'mergehistory-into' => 'Muk-tit vùn-tsông:',
-'mergehistory-list' => 'Khó-yî ha̍p-yit ke piên-sip li̍t-sṳ́',
+'mergehistory' => '合併頁面歷史',
+'mergehistory-from' => '來源頁面:',
+'mergehistory-into' => '目的頁面:',
+'mergehistory-list' => '做得合併嘅編寫歷史',
'mergehistory-merge' => '以下[[:$1]]嘅修訂可以合併到[[:$2]]。用邇選項按鈕欄去合併單淨有在指定時間以前所創建嘅修訂。愛留意嘅係使用導航連接就會重設邇一欄。',
# Merge log
# Search results
'searchresults' => '搜尋結果',
'searchresults-title' => '搜尋"$1"嘅結果',
-'searchresulttext' => 'Yû-kôan chhìm-cháu {{SITENAME}} ke kien-tô siòng-se chhìn-khóng, chhâm-kháu [[{{MediaWiki:Helppage}}|{{int:help}}]].',
+'searchresulttext' => '有關搜尋{{SITENAME}}嘅又較多詳情,參詳[[{{MediaWiki:Helppage}}|{{int:help}}]]。',
'searchsubtitle' => 'Chhà-sûn $1 (só-yû yî "$1" khôi-thèu ke ya̍p • só-yû lièn-chiap to "$1" ke ya̍p)',
-'searchsubtitleinvalid' => 'Chhà-chhìm "$1"',
-'titlematches' => 'Vùn-chông thì-muk siông-fù',
-'notitlematches' => 'Mò-yû chhìm-cháu to phit-phi vùn-chông thì-muk',
-'textmatches' => 'Vùn-chông nui-yùng fù-ha̍p',
-'notextmatches' => 'Mò-yû vùn-chông nui-yùng phit-phi',
+'searchsubtitleinvalid' => "搜尋'''$1'''",
+'titlematches' => '頁面標題相符',
+'notitlematches' => '找毋到配得上嘅頁面題目',
+'textmatches' => '頁面內容配得上',
+'notextmatches' => '無頁面內容配上',
'prevn' => '前頭$1隻',
'nextn' => '後背$1隻',
'prevn-title' => '前頭$1隻結果',
'viewprevnext' => '查看($1 {{int:pipe-separator}} $2)($3)',
'searchmenu-exists' => "'''在邇隻wiki上已經有一頁喊做“[[:$1]]”。'''",
'searchmenu-new' => "'''在本wiki上建立邇隻頁面“[[:$1]]”!'''",
-'searchhelp-url' => 'Help:Pông-chhu',
+'searchhelp-url' => 'Help:目錄',
'searchprofile-articles' => '內容頁面',
'searchprofile-project' => '幫助撈計劃頁面',
'searchprofile-images' => '多媒體',
'search-redirect' => '(重定向 $1)',
'search-section' => '(段落 $1)',
'search-suggest' => '汝係毋係尋:$1',
-'search-interwiki-caption' => 'Chí-moi kie-va̍k',
-'search-interwiki-default' => '$1 kiet-kó:',
-'search-interwiki-more' => '(kien-tô)',
+'search-interwiki-caption' => '姊妹計劃',
+'search-interwiki-default' => '$1項結果:',
+'search-interwiki-more' => '(還較多)',
'searchrelated' => '相關',
'searchall' => '全部',
'showingresults' => "Ha-mien hién-sṳ chhiùng thi-'''$2'''-thiàu khôi-sṳ́ ke '''$1'''-thiàu kiet-kó:",
'showingresultsheader' => "對'''$4'''嘅{{PLURAL:$5|第'''$1'''到第'''$3'''隻結果|第'''$1 - $2'''隻,共'''$3'''隻結果}}",
'nonefound' => '<strong>Chu-yi:</strong> Sṳt-phai ke sêu-chhà vông-vông he chhut-yì chhṳ-thù sêu-chhà chû-yì "ke" fe̍t-chá "lâu" chṳ̂-lui ke sòng-kien-sṳ só yîn-hí.',
'search-nonefound' => '在查詢肚無結果相符。',
-'powersearch' => 'Chin-kiê sêu-chhà',
-'powersearch-legend' => 'Chin-kiê sêu-chhà',
-'powersearch-ns' => 'Chhai yî-ha ke miàng-sṳ khûng-kiên chûng sêu-chhà:',
-'powersearch-redir' => 'Chhùng-sîn thin-hiong chhîn-tân',
-'powersearch-field' => 'Sêu-chhà',
-'powersearch-togglelabel' => 'Kiám-chhà:',
-'searchdisabled' => '{{SITENAME}} sin-nèn fông-mien ke ngièn-yîn, chhiòn-vùn chhìm-cháu yí-kîn pûn chhiam-sṳ̀ thìn-yung. Ngì khó-yî chhiam-sṳ̀ theu-ko Google chhà-chhìm. Chhiáng liù-yi sok-yîn khó-nèn voi ko-sṳ̀.',
+'powersearch' => '高級搜尋',
+'powersearch-legend' => '高級搜尋',
+'powersearch-ns' => '在下背嘅名字空間肚搜尋:',
+'powersearch-redir' => '重定向清單',
+'powersearch-field' => '搜尋',
+'powersearch-togglelabel' => '監查:',
+'searchdisabled' => '{{SITENAME}}由於性能方面嘅原因,全文搜已分暫時停用。汝做得暫時通過Google搜尋。請留意佢兜嘅索引可能會過時。',
# Preferences page
-'preferences' => 'Chhâm-su sat-chṳ',
+'preferences' => '偏好設定',
'mypreferences' => '偏好設定',
-'prefsnologin' => 'Hàn-mò tên-ngi̍p',
+'prefsnologin' => '還吂登入',
'prefsnologintext' => 'Ngì pit-sî chhai-siên [[Special:UserLogin|tên-ngi̍p]] chhòi-nèn sat-chṳ ke-ngìn chhâm-su.',
-'changepassword' => 'Kiên-kói me̍t-me̍t',
+'changepassword' => '更改密碼',
'prefs-skin' => '外皮',
-'skin-preview' => 'Yi-ko',
-'datedefault' => 'Yi-sat-chhṳ̍t',
-'prefs-datetime' => 'Ngit-khì khi̍p sṳ̀-kiên',
-'prefs-personal' => 'Yung-fu chṳ̂-liau',
+'skin-preview' => '預覽',
+'datedefault' => '預設值',
+'prefs-datetime' => '日期撈時間',
+'prefs-personal' => '用戶資料',
'prefs-rc' => '最近更改',
-'prefs-watchlist' => 'Kam-sṳ lie̍t-péu',
+'prefs-watchlist' => '監視列表',
'prefs-watchlist-days' => 'Kam-sṳ lie̍t-péu chûng hién-sṳ ki-liu̍k ke thiên-su:',
-'prefs-watchlist-edits' => 'Chhai chen-khiòng ke Kam-sṳ lie̍t-péu chûng hién-sṳ ke phiên-chho chhṳ-su:',
+'prefs-watchlist-edits' => '擴展監視列表肚顯示更改次數上限:',
'prefs-misc' => 'Khì-thâ sat-chṳ',
'saveprefs' => 'Pó-chhùn',
'resetprefs' => 'Sat-thin',
'minutes-abbrev' => '$1 mnt',
'hours-abbrev' => '$1 j',
'days-abbrev' => '$1 h',
-'seconds' => '{{PLURAL:$1|$1 detik|$1 detik}}',
+'seconds' => '{{PLURAL:$1|satu detik|$1 detik}}',
'minutes' => '{{PLURAL:$1|$1 menit|$1 menit}}',
'hours' => '{{PLURAL:$1|$1 jam|$1 jam}}',
'days' => '{{PLURAL:$1|$1 hari|$1 hari}}',
'welcomecreation-msg' => 'គណនីរបស់អ្នកត្រូវបានបង្កើតហើយ។
កុំភ្លេចផ្លាស់ប្ដូរ[[Special:Preferences|ចំណង់ចំណូលចិត្ត{{SITENAME}}]]របស់អ្នក។',
'yourname' => 'អត្តនាម៖',
+'userlogin-yourname' => 'អត្តនាម',
+'userlogin-yourname-ph' => 'បញ្ចូលអត្តនាមរបស់អ្នក',
+'createacct-helpusername-url' => '{{ns:Project}}:គោលការណ៍ស្ដីពីអត្តនាម',
+'createacct-helpusername-link' => '[[{{MediaWiki:createacct-helpusername-url}}|(សូមប្រាប់ពីរបៀបជ្រើសរើស)]]',
'yourpassword' => 'ពាក្យសម្ងាត់៖',
+'userlogin-yourpassword' => 'ពាក្យសម្ងាត់',
+'userlogin-yourpassword-ph' => 'បញ្ចូលពាក្យសម្ងាត់របស់អ្នក',
+'createacct-yourpassword-ph' => 'បញ្ចូលពាក្យសម្ងាត់',
'yourpasswordagain' => 'វាយពាក្យសម្ងាត់ម្តងទៀត៖',
+'createacct-yourpasswordagain' => 'អះអាងពាក្យសម្ងាត់',
+'createacct-yourpasswordagain-ph' => 'បញ្ចូលពាក្យសម្ងាត់ម្ដងទៀត',
'remembermypassword' => 'ចងចាំកំណត់ឈ្មោះចូលរបស់ខ្ញុំក្នុងកុំព្យូទ័រនេះ (សំរាប់រយៈពេលយូរបំផុត $1 {{PLURAL:$1|ថ្ងៃ|ថ្ងៃ}})',
+'userlogin-remembermypassword' => 'រក្សាស្ថានភាពកត់ឈ្មោះចូលរបស់ខ្ញុំ',
+'userlogin-signwithsecure' => 'ប្រើការតភ្ជាប់មានសុវត្ថិភាព',
'securelogin-stick-https' => 'នៅភ្ជាប់ទៅ HTTPS ដដែលបន្ទាប់ពីចុះឈ្មោះចូលហើយក៏ដោយ',
'yourdomainname' => 'ដូម៉ែនរបស់អ្នក៖',
'password-change-forbidden' => 'អ្នកមិនអាចផ្លាស់ប្ដូរពាក្យសម្ងាត់ក្នុងវិគីនេះទេ។',
'logout' => 'កត់ឈ្មោះចេញ',
'userlogout' => 'កត់ឈ្មោះចេញ',
'notloggedin' => 'មិនទាន់កត់ឈ្មោះចូល',
+'userlogin-noaccount' => 'តើលោកអ្នកមិនទាន់មានគណនីសម្រាប់ប្រើទេឬ?',
+'userlogin-joinproject' => 'សូមចូលជាសមាជិក {{SITENAME}}',
'nologin' => "បើលោកអ្នកមិនទាន់មានគណនីសម្រាប់ប្រើទេ សូម'''$1''' ។",
'nologinlink' => 'បង្កើតគណនី',
'createaccount' => 'បង្កើតគណនី',
'gotaccount' => "បើលោកអ្នកមានគណនីសម្រាប់ប្រើហើយ សូម'''$1'''។",
'gotaccountlink' => 'កត់ឈ្មោះចូល',
'userlogin-resetlink' => 'តើអ្នកភ្លេចព័ត៌មានលម្អិតសម្រាប់កត់ឈ្មោះចូលហើយ?',
+'userlogin-resetpassword-link' => 'ស្ដារពាក្យសម្ងាត់របស់អ្នក',
+'helplogin-url' => 'Help:ការកត់ឈ្មោះចូល',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|ជំនួយក្នុងការកត់ឈ្មោះចូល]]',
+'createacct-join' => 'បំពេញព័ត៌មានរបស់អ្នកខាងក្រោម។',
+'createacct-emailrequired' => 'អាសយដ្ឋានអ៊ីមែល',
+'createacct-emailoptional' => 'អាសយដ្ឋានអ៊ីមែល (ដាក់ក៏បានមិនដាក់ក៏បាន)',
+'createacct-email-ph' => 'បញ្ចូលអាសយដ្ឋានអ៊ីមែលរបស់អ្នក',
'createaccountmail' => 'ប្រើប្រាស់ពាក្យសំងាត់ព្រៀងបណ្ដោះអាសនុ្ន រួចផ្ញើវាទៅកាន់អាសយដ្ឋានអ៊ីមែលខាងក្រោម',
+'createacct-realname' => 'ឈ្មោះពិត (ដាក់ក៏បានមិនដាក់ក៏បាន)',
'createaccountreason' => 'មូលហេតុ៖',
+'createacct-reason' => 'មូលហេតុ',
+'createacct-reason-ph' => 'មូលហេតុដែលអ្នកចង់បង្កើតគណនីមួយទៀត',
+'createacct-captcha' => 'ត្រួតពិនិត្យសុវត្ថិភាព',
+'createacct-captcha-help-url' => '{{ns:Project}}:ការស្នើសុំគណនីមួយ',
+'createacct-imgcaptcha-help' => 'តើអ្នកមើលមិនឃើញរូបឬ? [[{{MediaWiki:createacct-captcha-help-url}}|សូមស្នើសុំគណនីមួយ]]',
+'createacct-imgcaptcha-ph' => 'បញ្ចូលឃ្លាដែលអ្នកឃើញខាងលើ',
+'createacct-submit' => 'បង្កើតគណនីរបស់អ្នក',
+'createacct-benefit-heading' => '{{SITENAME}} ត្រូវបង្កើតឡើងដោយបុគ្គលដូចអ្នកជាដើម។',
+'createacct-benefit-body1' => '{{PLURAL:$1|កំណែ|កំណែ}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|ទំព័រ|ទំព័រ}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|អ្នករួមចំណែក|អ្នករួមចំណែក}}ថ្មីៗ',
'badretype' => 'ពាក្យសម្ងាត់ដែលអ្នកបានវាយបញ្ចូលនោះ គឺមិនស៊ីគ្នាទេ។',
'userexists' => 'អត្តនាមដែលអ្នកបានវាយបញ្ចូលមានគេប្រើហើយ។
សូមជ្រើសរើសអត្តនាមផ្សេងពីនេះ។',
'loginerror' => 'កំហុសនៃការកត់ឈ្មោះចូល',
+'createacct-error' => 'បញ្ហាក្នុងការបង្កើតគណនី',
'createaccounterror' => 'មិនអាចបង្កើតគណនីបានទេ៖ $1',
'nocookiesnew' => 'គណនីប្រើប្រាស់របស់អ្នកត្រូវបានបង្កើតហើយ ក៏ប៉ុន្តែអ្នកមិនទាន់បានកត់ឈ្មោះចូលទេ។
# Special:PasswordReset
'passwordreset' => 'កំណត់ពាក្យសម្ងាត់សាឡើងវិញ',
-'passwordreset-text' => 'á\9e\94á\9f\86á\9e\96á\9f\81á\9e\89á\9e\9fá\9f\86á\9e\8eá\9e»á\9f\86á\9e\94á\9f\82á\9e\94á\9e\94á\9e\91á\9e\93á\9f\81á\9f\87á\9e\8aá\9e¾á\9e\98á\9f\92á\9e\94á\9e¸á\9e\91á\9e\91á\9e½á\9e\9bá\9e\94á\9e¶á\9e\93á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\89á\9f\82á\9e\9bá\9e\80á\9f\92á\9e\9aá\9e¾á\9e\93á\9e\9aá\9f\86á\9e\9bá\9e¹á\9e\80á\9e\96á\9e¸á\9e\96á\9f\90á\9e\8fá\9f\8cá\9e\98á\9e¶á\9e\93á\9e\9bá\9f\86á\9e¢á\9e·á\9e\8fá\9e\9aá\9e\94á\9e\9fá\9f\8bá\9e\82á\9e\8eá\9e\93á\9e¸របស់អ្នក។',
+'passwordreset-text' => 'á\9e\94á\9f\86á\9e\96á\9f\81á\9e\89á\9e\9fá\9f\86á\9e\8eá\9e»á\9f\86á\9e\94á\9f\82á\9e\94á\9e\94á\9e\91á\9e\93á\9f\81á\9f\87á\9e\8aá\9e¾á\9e\98á\9f\92á\9e\94á\9e¸á\9e\9fá\9f\92á\9e\8aá\9e¶á\9e\9aá\9e\96á\9e¶á\9e\80á\9f\92á\9e\99á\9e\9fá\9e\98á\9f\92á\9e\84á\9e¶á\9e\8fá\9f\8bរបស់អ្នក។',
'passwordreset-legend' => 'កំណត់ពាក្យសម្ងាត់សាឡើងវិញ',
'passwordreset-disabled' => 'មុខងារប្ដូរទៅពាក្យសម្ងាត់ដើមត្រូវបានបិទមិនអោយប្រើនៅលើវិគីនេះ។',
+'passwordreset-emaildisabled' => 'មុខងារអ៊ីមែលត្រូវបានបិទមិនអោយប្រើនៅលើវិគីនេះ។',
'passwordreset-pretext' => '{{PLURAL:$1||វាយបញ្ចូលផ្នែកមួយនៃទិន្នន័យខាងក្រោម}}',
'passwordreset-username' => 'អត្តនាម៖',
'passwordreset-domain' => 'ដូម៉ែន៖',
'passwordreset-capture-help' => 'ប្រសិនបើអ្នកគូសធីកប្រអប់នេះ អ៊ីមែល (ដែលមានពាក្យសម្ងាត់បណ្ដោះអាសន្ន) មិនត្រូវបានបង្ហាញដូចគ្នានឹងអ៊ីមែលដែលនឹងត្រូវផ្ញើទៅទៅកាន់អ្នកប្រើប្រាស់ដែរ។',
'passwordreset-email' => 'អាសយដ្ឋានអ៊ីមែល៖',
'passwordreset-emailtitle' => 'ព័ត៌មានលំអិតពីគណនីនៅលើ {{SITENAME}}',
-'passwordreset-emailtext-ip' => 'មាននរណាម្នាក់ (ប្រហែលជាខ្លួនអ្នកផ្ទាល់, មកពីអាស័យដ្ឋាន IP $1) បានស្នើសុំសារក្រើនរំលឹកពីព័ត៌មានពិស្ដារ
-អំពីគណនីរបស់អ្នកសំរាប់ {{SITENAME}} ($4)។ {{PLURAL:$3|គណនី|គណនី}}អ្នកប្រើប្រាស់ដូចតទៅនេះ
-មានជាប់ទាក់ទិននឹងអាស័យដ្ឋានអ៊ីមែលនេះ៖
+'passwordreset-emailtext-ip' => 'មាននរណាម្នាក់ (ប្រហែលជាខ្លួនអ្នកផ្ទាល់, មកពីអាស័យដ្ឋាន IP $1) បានស្នើសុំស្ដារពាក្យសម្ងាត់របស់អ្នកសម្រាប់ {{SITENAME}} ($4)។ {{PLURAL:$3|គណនី|គណនី}}អ្នកប្រើប្រាស់ដូចតទៅនេះ
+មានជាប់ទាក់ទិននឹងអាសយដ្ឋានអ៊ីមែលនេះ៖
$2
{{PLURAL:$3|ពាក្យសម្ងាត់បណ្ដោះអាសន្ននេះ|ពាក្យសម្ងាត់បណ្ដោះអាសន្នទាំងនេះ}} និងហួសសុពលភាពក្នុងរយៈពេល {{PLURAL:$5|មួយថ្ងៃ|$5 ថ្ងៃ}}។
-យកល្អអ្នកគួរតែកត់ឈ្មោះរួចជ្រើសរើសពាក្យសម្ងាត់ថ្មីមួយ។ ប្រសិនបើមាននរណាម្នាក់ផ្សេងធ្វើការស្នើសុំនេះ
-ឬប្រសិនបើអ្នកនឹកឃើញពាក្យសម្ងាត់ដើមរបស់អ្នកហើយអ្នកមិនប្រាថ្នាផ្លាស់ប្ដូរវាទៀតទេនោះ អ្នកគ្រាន់តែ
+á\9e\99á\9e\80á\9e\9bá\9f\92á\9e¢á\9e¢á\9f\92á\9e\93á\9e\80á\9e\82á\9e½á\9e\9aá\9e\8fá\9f\82á\9e\80á\9e\8fá\9f\8bá\9e\88á\9f\92á\9e\98á\9f\84á\9f\87á\9e\85á\9e¼á\9e\9bá\9e\9aá\9e½á\9e\85á\9e\87á\9f\92á\9e\9aá\9e¾á\9e\9fá\9e\9aá\9e¾á\9e\9fá\9e\96á\9e¶á\9e\80á\9f\92á\9e\99á\9e\9fá\9e\98á\9f\92á\9e\84á\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\98á\9e¸á\9e\98á\9e½á\9e\99á\9f\94 á\9e\94á\9f\92á\9e\9aá\9e\9fá\9e·á\9e\93á\9e\94á\9e¾á\9e\98á\9e¶á\9e\93á\9e\93á\9e\9aá\9e\8eá\9e¶á\9e\98á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\95á\9f\92á\9e\9fá\9f\81á\9e\84á\9e\92á\9f\92á\9e\9cá\9e¾á\9e\80á\9e¶á\9e\9aá\9e\9fá\9f\92á\9e\93á\9e¾á\9e\9fá\9e»á\9f\86á\9e\93á\9f\81á\9f\87
+ឬប្រសិនបើអ្នកនឹកឃើញពាក្យសម្ងាត់ដើមរបស់អ្នក ហើយអ្នកមិនប្រាថ្នាផ្លាស់ប្ដូរវាទៀតទេនោះ អ្នកគ្រាន់តែ
បំភ្លេចអំពីសារមួយនេះ ហើយបន្តប្រើប្រាស់ពាក្យសម្ងាត់ចាស់របស់អ្នកទៅបានហើយ។',
-'passwordreset-emailtext-user' => 'á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8b $1 á\9e\93á\9f\85á\9e\80á\9f\92á\9e\93á\9e»á\9e\84 {{SITENAME}} á\9e\94á\9e¶á\9e\93á\9e\9fá\9f\92á\9e\93á\9e¾á\9e\9fá\9e»á\9f\86á\9e\9fá\9e¶á\9e\9aá\9e\80á\9f\92á\9e\9aá\9e¾á\9e\93á\9e\9aá\9f\86á\9e\9bá\9e¹á\9e\80á\9e¢á\9f\86á\9e\96á\9e¸á\9e\96á\9f\90á\9e\8fá\9f\8cá\9e\98á\9e¶á\9e\93á\9e\96á\9e·á\9e\9fá\9f\92á\9e\8aá\9e¶á\9e\9aá\9e\9aá\9e\94á\9e\9fá\9f\8bá\9e\82á\9e\8eá\9e\93á\9e¸របស់អ្នកនៅក្នុង {{SITENAME}} ($4)។
- {{PLURAL:$3|á\9e\82á\9e\8eá\9e\93á\9e¸|á\9e\82á\9e\8eá\9e\93á\9e¸}}á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8bá\9e\8aá\9e¼á\9e\85á\9e\8fá\9e\91á\9f\85á\9e\93á\9f\81á\9f\87á\9e\98á\9e¶á\9e\93á\9e\87á\9e¶á\9e\94á\9f\8bá\9e\91á\9e¶á\9e\80á\9f\8bá\9e\91á\9e·á\9e\93á\9e\93á\9e¹á\9e\84á\9e¢á\9e¶á\9e\9fá\9f\90á\9e\99á\9e\8aá\9f\92á\9e\8bá\9e¶á\9e\93á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\93á\9f\81á\9f\87á\9f\96
+'passwordreset-emailtext-user' => 'á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8b $1 á\9e\93á\9f\85á\9e\80á\9f\92á\9e\93á\9e»á\9e\84 {{SITENAME}} á\9e\94á\9e¶á\9e\93á\9e\9fá\9f\92á\9e\93á\9e¾á\9e\9fá\9e»á\9f\86á\9e\9fá\9f\92á\9e\8aá\9e¶á\9e\9aá\9e\96á\9e¶á\9e\80á\9f\92á\9e\99á\9e\9fá\9e\98á\9f\92á\9e\84á\9e¶á\9e\8fá\9f\8bរបស់អ្នកនៅក្នុង {{SITENAME}} ($4)។
+ {{PLURAL:$3|គណនី|គណនី}}អ្នកប្រើប្រាស់ដូចតទៅនេះមានជាប់ទាក់ទិននឹងអាសយដ្ឋានអ៊ីមែលនេះ៖
$2
{{PLURAL:$3|ពាក្យសម្ងាត់បណ្ដោះអាសន្ននេះ|ពាក្យសម្ងាត់បណ្ដោះអាសន្នទាំងនេះ}} និងហួសសុពលភាពក្នុងរយៈពេល {{PLURAL:$5|មួយថ្ងៃ|$5 ថ្ងៃ}}។
-យកល្អអ្នកគួរតែកត់ឈ្មោះរួចជ្រើសរើសពាក្យសម្ងាត់ថ្មីមួយ។ ប្រសិនបើមាននរណាម្នាក់ផ្សេងធ្វើការស្នើសុំនេះ
-ឬប្រសិនបើអ្នកនឹកឃើញពាក្យសម្ងាត់ដើមរបស់អ្នកហើយអ្នកមិនប្រាថ្នាផ្លាស់ប្ដូរវាទៀតទេនោះ អ្នកគ្រាន់តែ
+á\9e\99á\9e\80á\9e\9bá\9f\92á\9e¢á\9e¢á\9f\92á\9e\93á\9e\80á\9e\82á\9e½á\9e\9aá\9e\8fá\9f\82á\9e\80á\9e\8fá\9f\8bá\9e\88á\9f\92á\9e\98á\9f\84á\9f\87á\9e\85á\9e¼á\9e\9bá\9e\9aá\9e½á\9e\85á\9e\87á\9f\92á\9e\9aá\9e¾á\9e\9fá\9e\9aá\9e¾á\9e\9fá\9e\96á\9e¶á\9e\80á\9f\92á\9e\99á\9e\9fá\9e\98á\9f\92á\9e\84á\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\98á\9e¸á\9e\98á\9e½á\9e\99á\9f\94 á\9e\94á\9f\92á\9e\9aá\9e\9fá\9e·á\9e\93á\9e\94á\9e¾á\9e\98á\9e¶á\9e\93á\9e\93á\9e\9aá\9e\8eá\9e¶á\9e\98á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\95á\9f\92á\9e\9fá\9f\81á\9e\84á\9e\92á\9f\92á\9e\9cá\9e¾á\9e\80á\9e¶á\9e\9aá\9e\9fá\9f\92á\9e\93á\9e¾á\9e\9fá\9e»á\9f\86á\9e\93á\9f\81á\9f\87
+ឬប្រសិនបើអ្នកនឹកឃើញពាក្យសម្ងាត់ដើមរបស់អ្នក ហើយអ្នកមិនប្រាថ្នាផ្លាស់ប្ដូរវាទៀតទេនោះ អ្នកគ្រាន់តែ
បំភ្លេចអំពីសារមួយនេះ ហើយបន្តប្រើប្រាស់ពាក្យសម្ងាត់ចាស់របស់អ្នកទៅបានហើយ។',
'passwordreset-emailelement' => 'អត្តនាម៖ $1
ពាក្យសម្ងាត់បណ្ដោះអាសន្ន៖ $2',
-'passwordreset-emailsent' => 'á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\9aá\9f\86á\9e\9bá\9e¹á\9e\80មួយត្រូវបានផ្ញើទៅហើយ។',
-'passwordreset-emailsent-capture' => 'á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\9aá\9f\86á\9e\9bá\9e¹á\9e\80មួយដូចបង្ហាញខាងក្រោមត្រូវបានផ្ញើទៅហើយ។',
-'passwordreset-emailerror-capture' => 'á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\9aá\9f\86á\9e\9bá\9e¹á\9e\80á\9e\98á\9e½á\9e\99á\9e\8aá\9e¼á\9e\85á\9e\94á\9e\84á\9f\92á\9e á\9e¶á\9e\89á\9e\81á\9e¶á\9e\84á\9e\80á\9f\92á\9e\9aá\9f\84á\9e\98á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\94á\9e\84á\9f\92á\9e\80á\9e¾á\9e\8fá\9e á\9e¾á\9e\99 á\9e\94á\9f\89á\9e»á\9e\93á\9f\92á\9e\8fá\9f\82á\9e\80á\9e¶á\9e\9aá\9e\95á\9f\92á\9e\89á\9e¾á\9e\91á\9f\85á\9e\80á\9e¶á\9e\93á\9f\8bá\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8bមិនបានសំរេចទេ៖ $1',
+'passwordreset-emailsent' => 'á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\9fá\9f\92á\9e\8aá\9e¶á\9e\9aá\9e\96á\9e¶á\9e\80á\9f\92á\9e\99á\9e\9fá\9e\98á\9f\92á\9e\84á\9e¶á\9e\8fá\9f\8bមួយត្រូវបានផ្ញើទៅហើយ។',
+'passwordreset-emailsent-capture' => 'á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\9fá\9f\92á\9e\8aá\9e¶á\9e\9aá\9e\96á\9e¶á\9e\80á\9f\92á\9e\99á\9e\9fá\9e\98á\9f\92á\9e\84á\9e¶á\9e\8fá\9f\8bមួយដូចបង្ហាញខាងក្រោមត្រូវបានផ្ញើទៅហើយ។',
+'passwordreset-emailerror-capture' => 'á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\9fá\9f\92á\9e\8aá\9e¶á\9e\9aá\9e\96á\9e¶á\9e\80á\9f\92á\9e\99á\9e\9fá\9e\98á\9f\92á\9e\84á\9e¶á\9e\8fá\9f\8bá\9e\98á\9e½á\9e\99á\9e\8aá\9e¼á\9e\85á\9e\94á\9e\84á\9f\92á\9e á\9e¶á\9e\89á\9e\81á\9e¶á\9e\84á\9e\80á\9f\92á\9e\9aá\9f\84á\9e\98á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\94á\9e\84á\9f\92á\9e\80á\9e¾á\9e\8fá\9e á\9e¾á\9e\99 á\9e\94á\9f\89á\9e»á\9e\93á\9f\92á\9e\8fá\9f\82á\9e\80á\9e¶á\9e\9aá\9e\95á\9f\92á\9e\89á\9e¾á\9e\91á\9f\85á\9e\80á\9e¶á\9e\93á\9f\8b {{GENDER:$2|á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8b}}មិនបានសំរេចទេ៖ $1',
# Special:ChangeEmail
'changeemail' => 'ផ្លាស់ប្ដូរអាសយដ្ឋានអ៊ីមែល',
'''មិនត្រូវដាក់ស្នើការងារមានជាប់កម្មសិទ្ឋិបញ្ញាដោយគ្មានការអនុញ្ញាតទេ!'''",
'longpageerror' => "'''បញ្ហា៖ អត្ថបទដែលអ្នកបានដាក់ស្នើមានទំហំ $1 គីឡូបៃ ដែលធំជាងទំហំអតិបរមា $2 គីឡូបៃ។'''
អត្ថបទនេះមិនអាចរក្សាទុកបានទេ។",
-'readonlywarning' => "'''ប្រយ័ត្ន:មូលដ្ឋានទិន្នន័យត្រូវបានចាក់សោសម្រាប់ការរក្សាទុក ដូច្នេះអ្នកនឹងមិនអាចរក្សាទុករាល់កំណែប្រែរបស់អ្នកបានទេឥឡូវនេះ។ សូមអ្នកចម្លងអត្ថបទ រួចដាក់ទៅក្នុងឯកសារដែលជាអត្ថបទ ហើយបន្ទាប់មករក្សាវាទុកនៅពេលក្រោយ។'''
+'readonlywarning' => "'''ប្រយ័ត្ន:មូលដ្ឋានទិន្នន័យត្រូវបានចាក់សោសម្រាប់ការរក្សាទុក ដូច្នេះអ្នកនឹងមិនអាចរក្សាទុករាល់កំណែប្រែរបស់អ្នកបានទេឥឡូវនេះ។'''
+សូមអ្នកចម្លងអត្ថបទ រួចដាក់ទៅក្នុងឯកសារដែលជាអត្ថបទ ហើយបន្ទាប់មករក្សាវាទុកនៅពេលក្រោយ។
-á\9e¢á\9f\92á\9e\93á\9e\80á\9e¢á\9e\97á\9e·á\9e\94á\9e¶á\9e\9bá\9e\8aá\9f\82á\9e\9bá\9e\94á\9e¶á\9e\93á\9e\85á\9e¶á\9e\80á\9f\8bá\9e\9fá\9f\84á\9e\9cá\9e¶ á\9e\94á\9e¶á\9e\93á\9e\95á\9f\92á\9e\8aá\9e\9bá\9f\8bá\9e\93á\9e½វការពន្យល់ដូចតទៅ៖ $1",
+á\9e¢á\9f\92á\9e\93á\9e\80á\9e¢á\9e\97á\9e·á\9e\94á\9e¶á\9e\9bá\9e\8aá\9f\82á\9e\9bá\9e\94á\9e¶á\9e\93á\9e\85á\9e¶á\9e\80á\9f\8bá\9e\9fá\9f\84á\9e\9cá\9e¶ á\9e\94á\9e¶á\9e\93á\9e\95á\9f\92á\9e\8aá\9e\9bá\9f\8bá\9e\93á\9e¼វការពន្យល់ដូចតទៅ៖ $1",
'protectedpagewarning' => "'''ប្រយ័ត្ន៖ ទំព័រនេះត្រូវបានចាក់សោ។ ដូច្នេះមានតែអ្នកប្រើប្រាស់ដែលមានអភ័យឯកសិទ្ឋិជាអ្នកអភិបាលទេទើបអាចកែប្រែវាបាន។'''
ខាងក្រោមនេះជាកំណត់ហេតុចូលចុងក្រោយ៖",
# Content models
'content-model-wikitext' => 'អត្ថបទវិគី',
'content-model-text' => 'អត្ថបទសុទ្ធ',
+'content-model-javascript' => 'JavaScript',
+'content-model-css' => 'CSS',
# Parser/template warnings
'expensive-parserfunction-warning' => "'''ប្រយ័ត្ន៖''' ទំព័រនេះមានប្រើអនុគមន៍ញែកច្រើនពេកហើយ។
'listusers-noresult' => 'រកមិនឃើញអ្នកប្រើប្រាស់នេះទេ។',
'listusers-blocked' => '(ស្ថិតក្រោមការហាមឃាត់)',
+# Special:ActiveUsers
+'activeusers' => 'បញ្ជីរាយនាមអ្នកប្រើប្រាស់សកម្ម',
+'activeusers-intro' => 'នេះជាបញ្ជីរាយនាមអ្នកប្រើប្រាស់ដែលមានសកម្មភាពក្នុងរូបភាពណាមួយក្នុងរយៈពេល $1 {{PLURAL:$1|ថ្ងៃ|ថ្ងៃ}}ចុងក្រោយ។',
+'activeusers-count' => '{{PLURAL:$1|សកម្មភាព|សកម្មភាព}}ចំនួន$1 ក្នុងរយៈពេល{{PLURAL:$3|១ថ្ងៃ|$3 ថ្ងៃ}}ចុងក្រោយ',
+'activeusers-from' => 'បង្ហាញអត្តនាមផ្ដើមដោយ៖',
+'activeusers-hidebots' => 'លាក់រូបយន្ត',
+'activeusers-hidesysops' => 'លាក់អភិបាល',
+'activeusers-noresult' => 'អ្នកប្រើប្រាស់រកមិនឃើញ។',
+
# Special:ListGroupRights
'listgrouprights' => 'សិទ្ធិនិងក្រុមអ្នកប្រើប្រាស់',
'listgrouprights-summary' => 'ខាងក្រោមនេះជាបញ្ជីរាយឈ្មោះក្រុមអ្នកប្រើប្រាស់ដែលបានកំណត់ជាមួយនឹងសិទ្ធិរបស់គេនៅលើវិគីនេះ។ មាន[[{{MediaWiki:Listgrouprights-helppage}}|ព័ត៌មានបន្ថែម]] អំពីសិទ្ធិផ្ទាល់ខ្លួន។',
'watchnologin' => 'មិនទាន់កត់ឈ្មោះចូលទេ',
'watchnologintext' => 'អ្នកចាំបាច់ត្រូវតែ[[Special:UserLogin|កត់ឈ្មោះចូល]]ដើម្បីកែប្រែបញ្ជីតាមដានរបស់អ្នក។',
'addwatch' => 'បន្ថែមទៅបញ្ជីតាមដាន',
-'addedwatchtext' => "ទំព័រ \"[[:\$1]]\" ត្រូវបានដាក់បញ្ចូលទៅក្នុង[[Special:Watchlist|បញ្ជីតាមដាន]]របស់លោកអ្នកហើយ ។ រាល់ការផ្លាស់ប្ដូរនៃទំព័រនេះ រួមទាំងទំព័រពិភាក្សារបស់វាផងដែរ នឹងត្រូវបានដាក់បញ្ចូលក្នុងបញ្ជីនៅទីនោះ។ ទំព័រនេះនឹងបង្ហាញជា'''អក្សរដិត''' នៅក្នុង [[Special:RecentChanges|បញ្ជីបំលាស់ប្ដូរថ្មីៗ]] ងាយស្រួលក្នុងការស្វែងរក។ ប្រសិនបើលោកអ្នកចង់យកវាចេញពី [[Special:Watchlist|បញ្ជីតាមដាន]]របស់លោកអ្នក សូមចុច '''ឈប់តាមដាន''' នៅលើរបារចំហៀងផ្នែកខាងលើ។",
+'addedwatchtext' => 'ទំព័រ "[[:$1]]" ត្រូវបានដាក់បញ្ចូលទៅក្នុង[[Special:Watchlist|បញ្ជីតាមដាន]]របស់លោកអ្នកហើយ ។ រាល់ការផ្លាស់ប្ដូរនៃទំព័រនេះ រួមទាំងទំព័រពិភាក្សារបស់វាផងដែរ នឹងត្រូវបានដាក់បញ្ចូលក្នុងបញ្ជីនៅទីនោះ។',
'removewatch' => 'ដកចេញពីបញ្ជីតាមដាន',
'removedwatchtext' => 'ទំព័រ "[[:$1]]" ត្រូវបានដកចេញពី[[Special:Watchlist|បញ្ជីតាមដាន]]របស់លោកអ្នកហើយ ។',
'watch' => 'តាមដាន',
'undeletedrevisions' => 'បានស្តារឡើងវិញនូវ{{PLURAL:$1|១កំណែ|$1កំណែ}}',
'undeletedrevisions-files' => 'បានស្តារឡើងវិញនូវ{{PLURAL:$1|១កំណែ|$1កំណែ}}និង{{PLURAL:$2|១ឯកសារ|$2ឯកសារ}}',
'undeletedfiles' => '{{PLURAL:$1|១ ឯកសារ|$1 ឯកសារ}} ត្រូវបានស្ដារឡើងវិញ',
-'cannotundelete' => 'ឈប់លុបមិនសម្រេច។
-
-ប្រហែលជាមាននរណាម្នាក់ផ្សេងទៀតបានឈប់លុបទំព័រនេះមុនអ្នក។',
+'cannotundelete' => 'ឈប់លុបមិនសម្រេច៖$1',
'undeletedpage' => "'''$1 ត្រូវបានស្តារឡើងវិញហើយ'''
សូមចូលទៅ [[Special:Log/delete|កំណត់ហេតុនៃការលុប]] ដើម្បីពិនិត្យមើលកំណត់ត្រានៃការលុបនិងការស្ដារឡើងវិញ។",
'minutes' => '{{PLURAL:$1|$1 នាទី|$1 នាទី}}',
'hours' => '{{PLURAL:$1|$1 ម៉ោង|$1 ម៉ោង}}',
'days' => '{{PLURAL:$1|$1 ថ្ងៃ|$1 ថ្ងៃ}}',
+'weeks' => '{{PLURAL: $1|$1 សប្តាហ៍|$1 សប្តាហ៍}}',
+'months' => '{{PLURAL:$1|$1 ខែ|$1 ខែ}}',
+'years' => '{{PLURAL:$1|$1 ឆ្នាំ|$1 ឆ្នាំ}}',
'ago' => '$1 មុន',
'just-now' => 'អំបាញ់មិញនេះ',
+# Human-readable timestamps
+'hours-ago' => '$1 {{PLURAL:$1|ម៉ោង|ម៉ោង}}មុន',
+'minutes-ago' => '$1 {{PLURAL:$1|នាទី|នាទី}}មុន',
+'seconds-ago' => '$1 {{PLURAL:$1|វិនាទី|វិនាទី}}មុន',
+'monday-at' => 'ថ្ងៃច័ន្ទនៅ $1',
+'tuesday-at' => 'ថ្ងៃអង្គារនៅ $1',
+'wednesday-at' => 'ថ្ងៃពុធនៅ $1',
+'thursday-at' => 'ថ្ងៃព្រហស្បតិ៍នៅ $1',
+'friday-at' => 'ថ្ងៃសុក្រនៅ $1',
+'saturday-at' => 'ថ្ងៃសៅរ៍នៅ $1',
+'sunday-at' => 'ថ្ងៃអាទិត្យនៅ $1',
+'yesterday-at' => 'ម្សិលមិញនៅ $1',
+
# Bad image list
'bad_image_list' => 'ទម្រង់ ដូចតទៅ ៖
* gpslongitude
* gpsaltitude',
-# EXIF tags
+# Exif tags
'exif-imagewidth' => 'ទទឹង',
'exif-imagelength' => 'កម្ពស់',
'exif-bitspersample' => '',
'exif-originalimageheight' => 'កំពស់របស់រូបភាពមុនពេលកាត់តំរឹម',
'exif-originalimagewidth' => 'ទទឹងរបស់រូបភាពមុនពេលកាត់តំរឹម',
-# EXIF attributes
+# Exif attributes
'exif-compression-1' => 'លែងបានបង្ហាប់',
'exif-copyrighted-true' => 'រក្សាសិទ្ឋ',
'version-software-version' => 'កំណែ',
'version-entrypoints-header-url' => 'URL',
-# Special:FilePath
-'filepath' => 'ផ្លូវនៃឯកសារ',
-'filepath-page' => 'ឯកសារ៖',
-'filepath-submit' => 'ទៅ',
-'filepath-summary' => 'ទំព័រពិសេសនេះ បង្ហាញផ្លូវពេញលេញ នៃ មួយឯកសារ។
-រូបភាពត្រូវបានបង្ហាញ ជាភាពម៉ត់ខ្ពស់, ប្រភេទឯកសារ ដទៃទៀត ធ្វើការដោយផ្ទាល់ ជាមួយ សហកម្មវិធី ។
-
-បញ្ចូល ឈ្មោះឯកសារ ដោយគ្មានការភ្ជាប់ "{{ns:file}}:" នៅពីមុខវា ។',
-
# Special:FileDuplicateSearch
'fileduplicatesearch' => 'ស្វែងរកឯកសារដូចគ្នាបេះបិទ',
'fileduplicatesearch-legend' => 'ស្វែងរកឯកសារដូចគ្នាបេះបិទ',
'htmlform-submit' => 'ដាក់ស្នើ',
'htmlform-reset' => 'ធ្វើដូចដើមវិញ',
'htmlform-selectorother-other' => 'ផ្សេងទៀត',
+'htmlform-no' => 'ទេ',
+'htmlform-yes' => 'បាទឬចាស',
# New logging system
'logentry-delete-delete' => '$1 បានលុបទំព័រ $3 ចោល',
'yourname' => 'Пайдаланышын лӱмжӧ:',
'yourpassword' => 'Шолыпмут:',
'yourpasswordagain' => 'Шолыпмутым угыч пуртымаш:',
-'remembermypassword' => 'Тиде бÑ\80аÑ\83зеÑ\80Ñ\8bÑ\88Ñ\82е мÑ\8bйÑ\8bн Ñ\88олÑ\8bпмÑ\83Ñ\82ым шарнаш (эн шуко $1 {{PLURAL:$1|кечылан|кечылан}})',
+'remembermypassword' => 'Тиде компÑ\8cÑ\8eÑ\82еÑ\80Ñ\8bÑ\88Ñ\82е мÑ\8bйым шарнаш (эн шуко $1 {{PLURAL:$1|кечылан|кечылан}})',
'yourdomainname' => 'Тендан домен:',
'login' => 'Шке денет палымым ыште',
'nav-login-createaccount' => 'Пураш/Регистрацийым эрте',
'sp-contributions-newbies' => 'У пайдалнышын гына пашам ончыкташ',
'sp-contributions-blocklog' => 'блокирований журнал',
+'sp-contributions-uploads' => 'пуртымаш-влак',
'sp-contributions-logs' => 'Журнал-влак',
'sp-contributions-talk' => 'каҥашымаш',
'sp-contributions-search' => 'Пашам кычалаш',
'currentrev-asof' => 'Revisi tabaru pado $1',
'revisionasof' => 'Pabaikkan per $1',
'revision-info' => 'Revisi sajak $1 dek $2',
-'previousrevision' => '← Pabaikkan sabalunnyo',
+'previousrevision' => '← Revisi sabalunnyo',
'nextrevision' => 'Revisi selanjuiknyo →',
'currentrevisionlink' => 'Revisi tabaru',
'cur' => 'kini',
# Merge log
'mergelog' => 'Log panggabuangan',
'revertmerge' => 'Batal gabuang',
+'mergelogpagetext' => 'Di bawah ko daftar panggabuangan riwayaik laman ka laman nan lain.',
# Diffs
'history-title' => 'Riwayaik revisi dari "$1"',
'listusers' => 'Daftar pangguno',
'listusers-editsonly' => 'Tunjuakan hanyo pangguno nan ado jariah',
'listusers-creationsort' => 'Uruikan manuruik tanggal pandaftaran',
-'usereditcount' => '$1 {{PLURAL:$1|suntiangan|suntiangan}}',
+'usereditcount' => '$1 {{PLURAL:$1|suntiangan}}',
'usercreated' => '{{GENDER:$3|Dibuek}} pado $1 pukua $2',
'newpages' => 'Laman baru',
'newpages-username' => 'Namo pangguno:',
Barikuik ko pangaturan nan balaku untuak laman '''$1''':",
'protect-cascadeon' => 'Laman ko sedang dilindungi karano tamasuak dalam {{PLURAL:$1|laman|laman}} aktif perlindungan batingkek.
Awak dapek maubah tingkek perlindungannyo, walaupun indak pangaruah pado perlindungan batingkeknyo.',
-'protect-default' => 'Semua pangguno diizinkan',
-'protect-fallback' => 'Cumo untuak pangguno jo izin "$1"',
-'protect-level-autoconfirmed' => 'Cumo untuak pangguno takonfirmasi otomatis',
-'protect-level-sysop' => 'Cumo untuak panguruih',
+'protect-default' => 'Kasado pangguno diizinan',
+'protect-fallback' => 'Untuak pangguno jo izin "$1" sajo',
+'protect-level-autoconfirmed' => 'Untuak pangguno takonfirmasi otomatis sajo',
+'protect-level-sysop' => 'Untuak panguruih sajo',
'protect-summary-cascade' => 'batingkek',
'protect-expiring' => 'sampai $1 (UTC)',
'protect-expiring-local' => 'sampai $1',
'protect-expiry-indefinite' => 'sataruihnyo',
'protect-cascade' => 'Linduangi laman nan takaik jo laman ko (palinduangan batingkek)',
-'protect-cantedit' => 'Sanak indak dapek maubah tingkek palinduangan laman ko, karano indak ado izin untuak itu.',
+'protect-cantedit' => 'Sanak indak dapek maubah tingkek palinduangan laman ko, dek indak ado izin untuak itu.',
'protect-othertime' => 'Wakatu lain:',
'protect-othertime-op' => 'wakatu lain',
'protect-existing-expiry' => 'Alah sampai: $3, $2',
'protect-edit-reasonlist' => 'Suntiang alasan palinduangan',
'protect-expiry-options' => '1 jam:1 hour,1 ari:1 day,1 minggu:1 week,2 minggu:2 weeks,1 bulan:1 month,3 bulan:3 months,6 bulan:6 months,1 taun:1 year,salamonyo:infinite',
'restriction-type' => 'Palinduangan:',
-'restriction-level' => 'Tingkek larangan:',
+'restriction-level' => 'Tingkek:',
'minimum-size' => 'Ukuran min',
'maximum-size' => 'Ukuran max',
'pagesize' => '(bita)',
'undeletebtn' => 'Baliakan',
'undeletelink' => 'caliak/baliakan',
'undeleteviewlink' => 'caliak',
-'undeletedrevisions' => '{{PLURAL:$1|$1 revisi}} dikambalian',
+'undeletedrevisions' => '{{PLURAL:$1|$1 revisi}} alah dikambalian',
'undelete-cleanup-error' => 'Kasalahan sawaktu mangapuih arsip berkas "$1" nan indak digunoan.',
# Namespace form on various pages
'sp-contributions-newbies' => 'Tunjuakan jariah pangguno baru sajo',
'sp-contributions-newbies-sub' => 'Untuak pangguno baru',
'sp-contributions-newbies-title' => 'Jariah pangguno baru',
-'sp-contributions-blocklog' => 'log pamblokiran',
+'sp-contributions-blocklog' => 'log sakek',
'sp-contributions-deleted' => 'jariah pangguno nan lah dihapuih',
'sp-contributions-uploads' => 'muek',
'sp-contributions-logs' => 'log',
'sp-contributions-talk' => 'maota',
'sp-contributions-userrights' => 'pangalolaan hak pangguno',
'sp-contributions-blocked-notice' => 'Pangguno ko sadang kanai sakek. log pamblokiran tarakhia ditunjuakan disiko untuak referensi:',
-'sp-contributions-blocked-notice-anon' => 'Alamaik IP ko tangah diblokir.
-Entri log pamblokiran tabaru ado di bawah ko untuak referensi:',
+'sp-contributions-blocked-notice-anon' => 'Alamaik IP ko tangah kanai sakek.
+Entri log sakek tabaru ado di bawah ko untuak referensi:',
'sp-contributions-search' => 'Cari jariah',
'sp-contributions-username' => 'Alamaik IP atau namo pangguno:',
'sp-contributions-toponly' => 'Hanyo manampilan suntiangan nan tarakhia',
'whatlinkshere-filters' => 'Panyariang',
# Block/unblock
-'autoblockid' => 'Sakek otomatis #$1',
+'autoblockid' => 'Sakek otomatih #$1',
'block' => 'Sakek pangguno',
'unblock' => 'Lapeh sakek',
'blockip' => 'Sakek pangguno',
'ipb-hardblock' => 'Halang pangguno tadaftar untuak manyuntiang dari alamaik IP ko',
'ipbcreateaccount' => 'Halang mambuek akun',
'ipbemailban' => 'Halang pangguno mangirim surel',
-'ipbenableautoblock' => 'Otomatis sakek alamaik IP tarakhia nan digunoan pangguno ko, jo sado alamaik IP takaik nan mancubo manyuntiang.',
+'ipbenableautoblock' => 'Otomatih sakek alamaik IP tarakhia nan digunoan pangguno ko, jo sado alamaik IP takaik nan mancubo manyuntiang.',
'ipbsubmit' => 'Sakek pangguno ko',
'ipbother' => 'Salamo:',
-'ipboptions' => '2 jam:2 hours,1 hari:1 day,3 hari:3 days,1 minggu:1 week,2 minggu:2 weeks,1 bulan:1 month,3 bulan:3 months,6 bulan:6 months,1 taun:1 year,salamonyo:infinite',
+'ipboptions' => '2 jam:2 hours,1 ari:1 day,3 ari:3 days,1 minggu:1 week,2 minggu:2 weeks,1 bulan:1 month,3 bulan:3 months,6 bulan:6 months,1 taun:1 year,salamonyo:infinite',
'ipbotheroption' => 'lainnyo',
'ipbotherreason' => 'Alasan lain/tambahan:',
'ipbhidename' => 'Suruakan namo pangguno dari daftar jo suntiangan',
'infiniteblock' => 'salamonyo',
'expiringblock' => 'habih pado $1 di $2',
'anononlyblock' => 'hanyo anon.',
-'noautoblockblock' => 'sakek otomatis dimatian',
+'noautoblockblock' => 'sakek otomatih dimatian',
'createaccountblock' => 'mambuek akun dimatian',
-'emailblock' => 'surel diblokir',
+'emailblock' => 'surel disakek',
'blocklist-nousertalk' => 'indak dapek manyuntiang laman maota surang',
'ipblocklist-empty' => 'Daftar sakek ko kosong.',
'ipblocklist-no-results' => 'Alamaik IP atau pangguno nan dimintak indak disakek.',
'change-blocklink' => 'ubah sakek',
'contribslink' => 'jariah',
'emaillink' => 'kirim surel',
-'autoblocker' => 'Sakek otomatis dek alamaik IP lah digunoan jo "[[User:$1|$1]]".
+'autoblocker' => 'Sakek otomatih dek alamaik IP lah digunoan jo "[[User:$1|$1]]".
Alasan disakek untuak $1 adolah "\'\'$2\'\'"',
'blocklogpage' => 'Log sakek',
-'blocklogentry' => 'Manyakek [[$1]] dalam maso $2 $3',
+'blocklogentry' => 'manyakek [[$1]] dalam maso $2 $3',
'blocklogtext' => 'Di bawah ko adolah log sakek jo palapehan sakek pado pangguno.
Alamaik IP nan disakek sacaro otomatis indak tadapaik dalam daftar ko.
Caliak [[Special:BlockList|daftar sakek]] untuak kasado pangguno nan kini kanai sakek.',
'unblocklogentry' => 'lapeh sakek $1',
'block-log-flags-anononly' => 'hanyo pangguno anonim',
'block-log-flags-nocreate' => 'mambuek akun dimatian',
-'block-log-flags-noautoblock' => 'sakek otomatis dimatian',
-'block-log-flags-noemail' => 'surel diblokir',
+'block-log-flags-noautoblock' => 'sakek otomatih dimatian',
+'block-log-flags-noemail' => 'surel disakek',
'block-log-flags-nousertalk' => 'indak dapek manyuntiang laman maota surang',
-'block-log-flags-angry-autoblock' => 'sistim sakek otomatis diaktifkan',
+'block-log-flags-angry-autoblock' => 'sistim sakek otomatih diaktipan',
'block-log-flags-hiddenname' => 'namo pangguno tasuruak',
'ipb_already_blocked' => '"$1" alah disakek',
'ipb-needreblock' => '$1 alah tasakek. Apo nio diubah pangaturannyo?',
'newtitle' => 'Ka judul baru:',
'move-watch' => 'Pantau laman ko',
'movepagebtn' => 'Pindahkan laman',
-'pagemovedsub' => 'Pamindahan berhasil',
+'pagemovedsub' => 'Pamindahan barasil',
'movepage-moved' => '\'\'\'"$1" lah dipindahan ka "$2"\'\'\'',
'movepage-moved-redirect' => 'Pangaliahan lah dibuek.',
'movepage-moved-noredirect' => 'Pangaliahan indak dibuek.',
'move-subpages' => 'Pindahkan sublaman (sampai $1)',
'move-talk-subpages' => 'Pindahkan sublaman dari laman rundiang (sampai $1)',
'movelogpage' => 'Log pamindahan',
+'movelogpagetext' => 'Di bawah ko daftar log pamindahan laman.',
'movereason' => 'Alasan:',
'revertmove' => 'baliakkan',
'move-leave-redirect' => 'Buek pangaliahan ka judul baru',
# Thumbnails
'thumbnail-more' => 'Pagadang',
-'thumbnail_error' => 'Gagal mambuek miniatur: $1',
+'thumbnail_error' => 'Gagal mambuek miniatua: $1',
# Special:Import
'import' => 'Impor laman',
'tooltip-pt-watchlist' => 'Daftar laman nan dipantau.',
'tooltip-pt-mycontris' => 'Daftar jariah Sanak',
'tooltip-pt-login' => 'Sanak disaranan untuak masuak log; walaupun indak wajib',
+'tooltip-pt-anonlogin' => 'Sanak disaranan untuak masuak log; walaupun indak wajib',
'tooltip-pt-logout' => 'Kalua log',
'tooltip-ca-talk' => 'Parudiangan tantang isi laman',
'tooltip-ca-edit' => 'Angku dapek manyuntiang laman ko. Silakan gunoan tombol pratonton sabalun manyimpan',
'tooltip-ca-nstab-special' => 'Laman istimewa, indak dapek disuntiang',
'tooltip-ca-nstab-project' => 'Caliak laman proyek',
'tooltip-ca-nstab-image' => 'Caliak laman berkas',
+'tooltip-ca-nstab-mediawiki' => 'Caliak pasan sistem',
'tooltip-ca-nstab-template' => 'Caliak templat',
'tooltip-ca-nstab-help' => 'Caliak laman bantuan',
'tooltip-ca-nstab-category' => 'Caliak laman kategori',
'tooltip-minoredit' => 'Tandoi iko sabagai suntiangan ketek',
'tooltip-save' => 'Simpan nan diubah',
-'tooltip-preview' => 'Caliak dulu nan diubah, gunokan ko sabalun manyimpan',
-'tooltip-diff' => 'Caliak parubahan nan alah awak buek tu',
-'tooltip-compareselectedversions' => 'Caliak pabedoan antaro duo revisi pilihan laman ko',
+'tooltip-preview' => 'Caliak lu nan diubah, gunoan ko sabalun manyimpan',
+'tooltip-diff' => 'Caliak parubahan nan lah dibuek',
+'tooltip-compareselectedversions' => 'Caliak pabedoan antaro duo revisi piliahan laman ko',
'tooltip-watch' => 'Tambahkan laman ko ka daftar pantau',
'tooltip-recreate' => 'Buek baliak laman walaupun sabananyo pernah dihapuih',
'tooltip-upload' => 'Mulai mamuek',
'tooltip-rollback' => '"Baliakkan" uruangkan suntiang laman ko pado kontribusi tarakhir dalam sakali klik',
'tooltip-undo' => '"Batalan" uruangkan panyuntiangan iko jo mambukak bantuak suntiang dalam bantuak pratonton. Hal ko mamungkinkan manambahkan alasan pado kotak ringkasan.',
'tooltip-preferences-save' => 'Simpan preferensi',
-'tooltip-summary' => 'Masuakan sabuah ringkasan pendek',
+'tooltip-summary' => 'Buek ringkasan pendek',
# Stylesheets
'print.css' => '/* CSS placed here will affect the print output */',
# Metadata
-'notacceptable' => 'Layanan wiki indak manyadioan data dalam format yang dapek dibaco dek pelanggan awak.',
+'notacceptable' => 'Server wiki indak dapek manyadioan data dalam format nan dapek dibaco dek klien Sanak.',
# Attribution
'anonymous' => '{{PLURAL:$1|Pangguno}} anonim {{SITENAME}}',
'file-info-size-pages' => '$1 × $2 piksel, ukuran berkas: $3, tipe MIME: $4, $5 {{PLURAL:$5|laman}}',
'file-nohires' => 'Indak tasadio resolusi nan labiah gadang.',
'svg-long-desc' => 'Berkas SVG, $1 × $2 piksel, ukuran berkas: $3',
-'svg-long-desc-animated' => 'Berkas anmasi SVG, $1 × $2 piksel, ukuran berkas: $3',
+'svg-long-desc-animated' => 'Berkas animasi SVG, $1 × $2 piksel, ukuran berkas: $3',
'svg-long-error' => 'Berkas SVG indak sah: $1',
'show-big-image' => 'Resolusi panuah',
'show-big-image-preview' => 'Ukuran pratonton ko: $1',
'minutes-abbrev' => '$1 min',
'hours-abbrev' => '$1 j',
'days-abbrev' => '$1 h',
-'seconds' => '{{PLURAL:$1|$1 detik|$1 detik}}',
-'minutes' => '{{PLURAL:$1|$1 minik|$1 minik}}',
-'hours' => '{{PLURAL:$1|$1 jam|$1 jam}}',
-'days' => '{{PLURAL:$1|$1 ari|$1 ari}}',
-'weeks' => '{{PLURAL:$1|$1 minggu|$1 minggu}}',
-'months' => '{{PLURAL:$1|$1 bulan|$1 bulan}}',
-'years' => '{{PLURAL:$1|$1 taun|$1 taun}}',
+'seconds' => '{{PLURAL:$1|$1 datiak}}',
+'minutes' => '{{PLURAL:$1|$1 minik}}',
+'hours' => '{{PLURAL:$1|$1 jam}}',
+'days' => '{{PLURAL:$1|$1 ari}}',
+'weeks' => '{{PLURAL:$1|$1 minggu}}',
+'months' => '{{PLURAL:$1|$1 bulan}}',
+'years' => '{{PLURAL:$1|$1 taun}}',
'ago' => '$1 nan lalu',
'just-now' => 'sabanta ko',
+# Human-readable timestamps
+'hours-ago' => '$1 {{PLURAL:$1|jam}} nan lalu',
+'minutes-ago' => '$1 {{PLURAL:$1|minik}} nan lalu',
+'seconds-ago' => '$1 {{PLURAL:$1|datiak}} nan lalu',
+'monday-at' => 'Sinayan pukua $1',
+'tuesday-at' => 'Salasa pukua $1',
+'wednesday-at' => "Raba'a pukua $1",
+'thursday-at' => 'Kamih pukua $1',
+'friday-at' => 'Jumaik pukua $1',
+'saturday-at' => 'Satu pukua $1',
+'sunday-at' => 'Akaik pukua $1',
+'yesterday-at' => 'Kapatang pukua $1',
+
# Bad image list
'bad_image_list' => 'Formatnyo adolah sabagai barikuik:
'htmlform-required' => 'Nilai ko diparaluan',
# New logging system
+'logentry-delete-delete' => '$1 {{GENDER:$2|mangapuih}} laman $3',
'logentry-delete-restore' => '$1 {{GENDER:$2|mangambalian}} laman $3',
+'logentry-move-move' => '$1 {{GENDER:$2|mamindahan}} laman $3 ka $4',
+'logentry-move-move_redir' => '$1 {{GENDER:$2|mamindahan}} laman $3 ka $4 maimpok pangaliahan lamo',
+'logentry-move-move_redir-noredirect' => '$1 {{GENDER:$2|mamindahan}} laman $3 ka $4 maimpok pangaliahan lamo tanpa mambuek pangaliahan',
'logentry-patrol-patrol' => '$1 {{GENDER:$2|manandoi}} revisi $4 dari laman $3 tapatroli',
'logentry-patrol-patrol-auto' => '$1 otomatih {{GENDER:$2|manandoi}} revisi $4 dari laman $3 tapatroli',
'logentry-newusers-newusers' => 'Akun pangguno $1 alah {{GENDER:$2|dibuek}}',
'createacct-yourpasswordagain-ph' => 'രഹസ്യവാക്ക് വീണ്ടും നൽകുക',
'remembermypassword' => 'എന്റെ പ്രവേശനം ഈ ബ്രൗസറിൽ ({{PLURAL:$1|ഒരു ദിവസം|$1 ദിവസം}}) ഓർത്തുവെക്കുക',
'userlogin-remembermypassword' => 'ഞാൻ പ്രവേശിച്ചതായി തന്നെ നിലനിർത്തുക',
-'userlogin-signwithsecure' => 'à´¸àµ\81à´°à´\95àµ\8dà´·à´¿à´¤ à´¸àµ\86ർവർ à´\89പയàµ\8bà´\97à´¿à´\9aàµ\8dà´\9aàµ\8d à´ªàµ\8dà´°à´µàµ\87à´¶ിക്കുക',
+'userlogin-signwithsecure' => 'à´¸àµ\81à´°à´\95àµ\8dà´·à´¿à´¤ à´\95ണൿഷൻ à´\89പയàµ\8bà´\97ിക്കുക',
'securelogin-stick-https' => 'പ്രവേശനത്തിനു ശേഷവും എച്ച്.റ്റി.റ്റി.പി.എസ്. തന്നെ ഉപയോഗിക്കുക',
'yourdomainname' => 'താങ്കളുടെ ഡൊമെയിൻ:',
'password-change-forbidden' => 'ഈ വിക്കിയിൽ രഹസ്യവാക്കുകൾ മാറ്റാനാവില്ല.',
'gotaccount' => "താങ്കൾക്ക് അംഗത്വമുണ്ടോ? '''$1'''.",
'gotaccountlink' => 'പ്രവേശിക്കുക',
'userlogin-resetlink' => 'താങ്കളുടെ ലോഗിൻ വിവരങ്ങൾ മറന്നു പോയോ?',
+'userlogin-resetpassword-link' => 'താങ്കളുടെ രഹസ്യവാക്ക് പുനഃസജ്ജീകരിക്കുക',
'helplogin-url' => 'Help:പ്രവേശനം',
'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|പ്രവേശന സഹായം]]',
'createacct-join' => 'താങ്കളെപ്പറ്റിയുള്ള വിവരങ്ങൾ താഴെ നൽകുക.',
* @ingroup Language
* @file
*
+ * @author Hiong3-eng5
* @author Ianbu
* @author Kaihsu
*/
'tog-shownumberswatching' => 'Hián-sī tng leh khoàⁿ ê iōng-chiá sò͘-bo̍k',
'tog-oldsig' => 'Chit-má ê chhiam-miâ:',
'tog-fancysig' => 'Chhiam-miâ mài chò liân-kiat',
-'tog-externaleditor' => 'Iōng gōa-pō· pian-chi̍p-khì',
-'tog-externaldiff' => 'Iōng gōa-pō· diff',
'tog-showjumplinks' => 'Hō͘ "thiàu khì" chit ê liân-chiap ē-sái',
'tog-uselivepreview' => 'Ēng sui khoàⁿ-māi (ài ū JavaScript) (chhì-giām--ê)',
'tog-forceeditsummary' => 'Pian-chi̍p khài-iàu bô thiⁿ ê sî-chūn, kā goá thê-chhéⁿ',
Lí ē-sái mài kì-miâ kè-siok sú-iōng {{SITENAME}}, mā ē-sái iōng kāng-ê a̍h-sī pa̍t-ê sin-hūn têng teng-ji̍p.
Chhiaⁿ chù-ì: ū-kóa ia̍h ū khó-lêng khoàⁿ-tio̍h bē-su lí iû-goân teng-ji̍p tiong; che chi-iàu piàⁿ tiāu lí ê browser ê cache chiū ē chèng-siông.",
'yourname' => 'Lí ê iōng-chiá miâ-chheng:',
+'userlogin-yourname' => 'Iōng-chiá miâ-chheng',
'yourpassword' => 'Lí ê bi̍t-bé:',
+'userlogin-yourpassword' => 'Bi̍t-bé',
'yourpasswordagain' => 'Têng phah bi̍t-bé:',
'remembermypassword' => 'Kì tiâu góa ê bi̍t-bé (āu-chhiú teng-ji̍p iōng) (for a maximum of $1 {{PLURAL:$1|day|days}})',
'login' => 'Teng-ji̍p',
'powersearch' => 'Kiám-sek',
'powersearch-legend' => 'Kiám-sek',
-# Quickbar
-'qbsettings' => 'Quickbar ê siat-tēng',
-
# Preferences page
'preferences' => 'Siat-tēng',
'mypreferences' => 'Góa ê siat-tēng',
# Special:Version
'version' => 'Pán-pún',
-# Special:FilePath
-'filepath' => 'Tóng-àn ê soàⁿ-lō·',
-
# Special:SpecialPages
'specialpages' => 'Te̍k-sû-ia̍h',
'createacct-yourpasswordagain-ph' => 'Пароль ногæй бафысс',
'remembermypassword' => 'Бахъуыды мæ кæнæд ашы браузеры (максимум $1 {{PLURAL:$1|бонмæ|бонмæ}})',
'userlogin-remembermypassword' => 'Системæйы мæ дар',
-'userlogin-signwithsecure' => 'Æдас серверæй бахизын',
+'userlogin-signwithsecure' => 'Æдас бастдзинадæй',
'securelogin-stick-https' => 'Дарддæр дæр HTTPS-ы уылты, бахизыны фæстæ',
'yourdomainname' => 'Дæ домен:',
'password-change-forbidden' => 'Дæ бон нæу пароль фæивын ацы викийы.',
'gotaccount' => 'Регистрацигонд дæ? $1.',
'gotaccountlink' => 'Бахизын',
'userlogin-resetlink' => 'Ферох дæ сты дæ бахизæнтæ?',
+'userlogin-resetpassword-link' => 'Дæ пароль ногæй сæвæр',
'helplogin-url' => 'Help:Бахизын',
'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Бахизынæн æххуыс]]',
'createacct-join' => 'Дæ информаци дæлдæр бафысс.',
'''Æрмæст''' уæллаг ивæны текст æрцæудзæн æвæрд \"{{int:savearticle}}\"-ыл куы ныххæцай.",
'yourtext' => 'Дæ текст',
'storedversion' => 'Æвæрд фæлтæр',
+'nonunicodebrowser' => "'''Сындæг: Дæ сгарæн Unicode-имæ нæ фидауы.'''
+ASCII нысæнттæм чи нæ хауы, уыдон ивыны бынаты сæ æхсæрдæсон кодты хуызы уыдзысты.",
'yourdiff' => 'Хицæндзинæдтæ',
'templatesused' => 'Ацы фарсы ис {{PLURAL:$1|хуызæг|хуызæджы}}:',
'template-protected' => '(æхгæд)',
'jan' => 'gen',
'feb' => 'fër',
'mar' => 'mar',
-'apr' => 'Avr',
-'may' => 'Mag',
-'jun' => 'Giu',
-'jul' => 'Luj',
+'apr' => 'avr',
+'may' => 'maj',
+'jun' => 'giu',
+'jul' => 'luj',
'aug' => 'Aos',
'sep' => 'Stè',
'oct' => 'Otó',
'feb' => 'фев',
'mar' => 'мар',
'apr' => 'апр',
-'may' => 'мая',
+'may' => 'май',
'jun' => 'июн',
'jul' => 'июл',
'aug' => 'авг',
'createacct-yourpasswordagain' => 'Conferma la password',
'createacct-yourpasswordagain-ph' => 'Inserissi da novo la password',
'remembermypassword' => 'Tiente in mente la password su sto conputer (par un massimo de $1 {{PLURAL:$1|zorno|zorni}})',
-'userlogin-remembermypassword' => 'Tiente in mente chi son',
-'userlogin-signwithsecure' => 'Entra con un server seguro',
+'userlogin-remembermypassword' => 'Tienme colegà',
+'userlogin-signwithsecure' => 'Entra con na conesion segura',
'securelogin-stick-https' => 'Resta tacà par HTTPS dopo èssar entrà',
'yourdomainname' => 'Spesifegare el dominio',
'password-change-forbidden' => 'Nó xe posibiłe canbiar ła password so sta wiki.',
'gotaccount' => "Sito zà iscrito? '''$1'''.",
'gotaccountlink' => 'Entra',
'userlogin-resetlink' => "Desmentegà i to dati d'aceso?",
+'userlogin-resetpassword-link' => 'Reinposta la to password',
'helplogin-url' => 'Help:Login',
'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ajuto col login]]',
'createacct-join' => 'Meti le to informassion qua soto.',
'createacct-imgcaptcha-ph' => 'Inserissi el testo che te vedi de sora',
'createacct-submit' => 'Crea la to utensa',
'createacct-benefit-heading' => '{{SITENAME}} xe fato da gente come ti.',
-'createacct-benefit-body1' => 'contributi',
-'createacct-benefit-body2' => 'pagine',
-'createacct-benefit-body3' => 'contributori recenti',
+'createacct-benefit-body1' => '$1 {{PLURAL:$1|contributo|contributi}}',
+'createacct-benefit-body2' => '$1 {{PLURAL:$1|pàxena|pàxene}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|contributor recente|contributori recenti}}',
'badretype' => 'Le do password le xe difarenti.',
'userexists' => 'El nome utente inserido vien xa doparà da cualchedun altro.
Prova co un nome utente difarente.',
** returns the help screen - so currently a lot of the tests aren't actually doing much
** because something wasn't right in the query.
**
- ** @todo: Incomplete / unfinished; Runs too fast (suggests not much testing going on).
+ ** @todo Incomplete / unfinished; Runs too fast (suggests not much testing going on).
*/
class api extends pageTest {
'signatures' => 'Signatures',
'CoreParserFunctions' => 'Core parser functions',
'version' => 'Special:Version',
+ 'redirect' => 'Special:Redirect',
'fileduplicatesearch' => 'Special:FileDuplicateSearch',
'special-specialpages' => 'Special:SpecialPages',
'special-blank' => 'Special:BlankPage',
}
/**
- * @todo: do this for reals
+ * @todo Do this for real
* @param $key
* @param $prefix
* @param $fix
* See Vector for an example.
*/
'skins.cologneblue' => array(
- 'styles' => array( 'cologneblue/screen.css' => array( 'media' => 'screen' ) ),
+ 'styles' => array(
+ 'cologneblue/screen.css' => array( 'media' => 'screen' ),
+ 'cologneblue/print.css' => array( 'media' => 'print' ),
+ ),
'remoteBasePath' => $GLOBALS['wgStylePath'],
'localBasePath' => $GLOBALS['wgStyleDirectory'],
),
'scripts' => 'resources/mediawiki.special/mediawiki.special.undelete.js',
),
'mediawiki.special.upload' => array(
- // @TODO: merge in remainder of mediawiki.legacy.upload
+ // @todo merge in remainder of mediawiki.legacy.upload
'scripts' => 'resources/mediawiki.special/mediawiki.special.upload.js',
'messages' => array(
'widthheight',
actionPaths = mw.config.get( 'wgActionPaths' );
- // @todo: Does MediaWiki give action path or query param
+ // @todo Does MediaWiki give action path or query param
// precedence ? If the former, move this to the bottom
action = mw.util.getParamValue( 'action', url );
if ( action !== null ) {
* @param $out OutputPage
*/
function setupSkinUserCss( OutputPage $out ) {
- $out->addModuleStyles( 'mediawiki.legacy.shared' );
+ parent::setupSkinUserCss( $out );
$out->addModuleStyles( 'mediawiki.legacy.oldshared' );
$out->addModuleStyles( 'skins.cologneblue' );
}
ob_start();
?>
</div>
- <div id="footer" role="contentinfo">
+ <div id="footer">
+ <div id="footer-navigation" role="navigation">
<?php
// Page-related links
echo $this->bottomLinks();
$this->getSkin()->aboutLink(),
$this->searchForm( 'footer' )
) );
- echo "\n<br />";
-
+?>
+ </div>
+ <div id="footer-info" role="contentinfo">
+<?php
// Standard footer info
$footlinks = $this->getFooterLinks();
if ( $footlinks['info'] ) {
}
}
?>
+ </div>
</div>
</div>
<div id="mw-navigation">
--- /dev/null
+#sitetitle,
+#sitesub,
+#titlelinks,
+#footer-navigation {
+ display: none;
+}
<ul><li><ul><li> bar
</li></ul>
</li></ul>
-<h2><span class="mw-headline" id="A_heading">A heading</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: A heading">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="A_heading">A heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: A heading">edit</a>]</span></h2>
<ul><li> Another list item
</li></ul>
!! input
{{includeonly section}}
!! result
-<h2><span class="mw-headline" id="Includeonly_section">Includeonly section</span> <span class="mw-editsection">[<a href="/index.php?title=Template:Includeonly_section&action=edit&section=T-1" title="Template:Includeonly section">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="Section_T-1">Section T-1</span> <span class="mw-editsection">[<a href="/index.php?title=Template:Includeonly_section&action=edit&section=T-2" title="Template:Includeonly section">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Includeonly_section">Includeonly section</span><span class="mw-editsection">[<a href="/index.php?title=Template:Includeonly_section&action=edit&section=T-1" title="Template:Includeonly section">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Section_T-1">Section T-1</span><span class="mw-editsection">[<a href="/index.php?title=Template:Includeonly_section&action=edit&section=T-2" title="Template:Includeonly section">edit</a>]</span></h2>
!! end
</includeonly>
==Section 1==
!! result
-<h2><span class="mw-headline" id="Section_1">Section 1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Section 1">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Section 1">edit</a>]</span></h2>
!! end
===Smaller headline===
Blah blah
!! result
-<h2><span class="mw-headline" id="Headline_1">Headline 1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Headline 1">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Headline_1">Headline 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Headline 1">edit</a>]</span></h2>
<p>Some text
</p>
-<h2><span class="mw-headline" id="Headline_2">Headline 2</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Headline 2">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Headline_2">Headline 2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Headline 2">edit</a>]</span></h2>
<p>More
</p>
-<h3><span class="mw-headline" id="Smaller_headline">Smaller headline</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: Smaller headline">edit</a>]</span></h3>
+<h3><span class="mw-headline" id="Smaller_headline">Smaller headline</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: Smaller headline">edit</a>]</span></h3>
<p>Blah blah
</p>
!! end
</li>
</ul>
</td></tr></table>
-<h2><span class="mw-headline" id="Headline_1">Headline 1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Headline 1">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="Subheadline_1">Subheadline 1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Subheadline 1">edit</a>]</span></h3>
-<h5><span class="mw-headline" id="Skipping_a_level">Skipping a level</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: Skipping a level">edit</a>]</span></h5>
-<h6><span class="mw-headline" id="Skipping_a_level_2">Skipping a level</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: Skipping a level">edit</a>]</span></h6>
-<h2><span class="mw-headline" id="Headline_2">Headline 2</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: Headline 2">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Headline_1">Headline 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Headline 1">edit</a>]</span></h2>
+<h3><span class="mw-headline" id="Subheadline_1">Subheadline 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Subheadline 1">edit</a>]</span></h3>
+<h5><span class="mw-headline" id="Skipping_a_level">Skipping a level</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: Skipping a level">edit</a>]</span></h5>
+<h6><span class="mw-headline" id="Skipping_a_level_2">Skipping a level</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: Skipping a level">edit</a>]</span></h6>
+<h2><span class="mw-headline" id="Headline_2">Headline 2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: Headline 2">edit</a>]</span></h2>
<p>Some text
</p>
-<h3><span class="mw-headline" id="Another_headline">Another headline</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=6" title="Edit section: Another headline">edit</a>]</span></h3>
+<h3><span class="mw-headline" id="Another_headline">Another headline</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=6" title="Edit section: Another headline">edit</a>]</span></h3>
!! end
</li>
</ul>
</td></tr></table>
-<h1><span class="mw-headline" id="Level_1_Heading">Level 1 Heading</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Level 1 Heading">edit</a>]</span></h1>
-<h2><span class="mw-headline" id="Level_2_Heading">Level 2 Heading</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Level 2 Heading">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="Level_3_Heading">Level 3 Heading</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: Level 3 Heading">edit</a>]</span></h3>
-<h4><span class="mw-headline" id="Level_4_Heading">Level 4 Heading</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: Level 4 Heading">edit</a>]</span></h4>
-<h5><span class="mw-headline" id="Level_5_Heading">Level 5 Heading</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: Level 5 Heading">edit</a>]</span></h5>
-<h6><span class="mw-headline" id="Level_6_Heading">Level 6 Heading</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=6" title="Edit section: Level 6 Heading">edit</a>]</span></h6>
-<h6><span class="mw-headline" id=".3D_Level_7_Heading.3D">= Level 7 Heading=</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=7" title="Edit section: = Level 7 Heading=">edit</a>]</span></h6>
-<h6><span class="mw-headline" id=".3D.3D_Level_8_Heading.3D.3D">== Level 8 Heading==</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=8" title="Edit section: == Level 8 Heading==">edit</a>]</span></h6>
-<h6><span class="mw-headline" id=".3D.3D.3D_Level_9_Heading.3D.3D.3D">=== Level 9 Heading===</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=9" title="Edit section: === Level 9 Heading===">edit</a>]</span></h6>
-<h6><span class="mw-headline" id=".3D.3D.3D.3D_Level_10_Heading.3D.3D.3D.3D">==== Level 10 Heading====</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=10" title="Edit section: ==== Level 10 Heading====">edit</a>]</span></h6>
+<h1><span class="mw-headline" id="Level_1_Heading">Level 1 Heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Level 1 Heading">edit</a>]</span></h1>
+<h2><span class="mw-headline" id="Level_2_Heading">Level 2 Heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Level 2 Heading">edit</a>]</span></h2>
+<h3><span class="mw-headline" id="Level_3_Heading">Level 3 Heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: Level 3 Heading">edit</a>]</span></h3>
+<h4><span class="mw-headline" id="Level_4_Heading">Level 4 Heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: Level 4 Heading">edit</a>]</span></h4>
+<h5><span class="mw-headline" id="Level_5_Heading">Level 5 Heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: Level 5 Heading">edit</a>]</span></h5>
+<h6><span class="mw-headline" id="Level_6_Heading">Level 6 Heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=6" title="Edit section: Level 6 Heading">edit</a>]</span></h6>
+<h6><span class="mw-headline" id=".3D_Level_7_Heading.3D">= Level 7 Heading=</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=7" title="Edit section: = Level 7 Heading=">edit</a>]</span></h6>
+<h6><span class="mw-headline" id=".3D.3D_Level_8_Heading.3D.3D">== Level 8 Heading==</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=8" title="Edit section: == Level 8 Heading==">edit</a>]</span></h6>
+<h6><span class="mw-headline" id=".3D.3D.3D_Level_9_Heading.3D.3D.3D">=== Level 9 Heading===</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=9" title="Edit section: === Level 9 Heading===">edit</a>]</span></h6>
+<h6><span class="mw-headline" id=".3D.3D.3D.3D_Level_10_Heading.3D.3D.3D.3D">==== Level 10 Heading====</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=10" title="Edit section: ==== Level 10 Heading====">edit</a>]</span></h6>
!! end
</li>
</ul>
</td></tr></table>
-<h2><span class="mw-headline" id="title_1">title 1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: title 1">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="title_1.1">title 1.1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: title 1.1">edit</a>]</span></h3>
-<h4><span class="mw-headline" id="title_1.1.1">title 1.1.1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: title 1.1.1">edit</a>]</span></h4>
-<h3><span class="mw-headline" id="title_1.2">title 1.2</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: title 1.2">edit</a>]</span></h3>
-<h2><span class="mw-headline" id="title_2">title 2</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: title 2">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="title_2.1">title 2.1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=6" title="Edit section: title 2.1">edit</a>]</span></h3>
+<h2><span class="mw-headline" id="title_1">title 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: title 1">edit</a>]</span></h2>
+<h3><span class="mw-headline" id="title_1.1">title 1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: title 1.1">edit</a>]</span></h3>
+<h4><span class="mw-headline" id="title_1.1.1">title 1.1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: title 1.1.1">edit</a>]</span></h4>
+<h3><span class="mw-headline" id="title_1.2">title 1.2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: title 1.2">edit</a>]</span></h3>
+<h2><span class="mw-headline" id="title_2">title 2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: title 2">edit</a>]</span></h2>
+<h3><span class="mw-headline" id="title_2.1">title 2.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=6" title="Edit section: title 2.1">edit</a>]</span></h3>
!! end
</li>
</ul>
</td></tr></table>
-<h2><span class="mw-headline" id="title_1">title 1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: title 1">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="title_1.1">title 1.1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: title 1.1">edit</a>]</span></h3>
-<h4><span class="mw-headline" id="title_1.1.1">title 1.1.1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: title 1.1.1">edit</a>]</span></h4>
-<h3><span class="mw-headline" id="title_1.2">title 1.2</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: title 1.2">edit</a>]</span></h3>
-<h2><span class="mw-headline" id="title_2">title 2</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: title 2">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="title_2.1">title 2.1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=6" title="Edit section: title 2.1">edit</a>]</span></h3>
+<h2><span class="mw-headline" id="title_1">title 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: title 1">edit</a>]</span></h2>
+<h3><span class="mw-headline" id="title_1.1">title 1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: title 1.1">edit</a>]</span></h3>
+<h4><span class="mw-headline" id="title_1.1.1">title 1.1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: title 1.1.1">edit</a>]</span></h4>
+<h3><span class="mw-headline" id="title_1.2">title 1.2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: title 1.2">edit</a>]</span></h3>
+<h2><span class="mw-headline" id="title_2">title 2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: title 2">edit</a>]</span></h2>
+<h3><span class="mw-headline" id="title_2.1">title 2.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=6" title="Edit section: title 2.1">edit</a>]</span></h3>
!! end
<li class="toclevel-1 tocsection-5"><a href="#Section_2"><span class="tocnumber">2</span> <span class="toctext">Section 2</span></a></li>
</ul>
</td></tr></table>
-<h2><span class="mw-headline" id="Section_1">Section 1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Section 1">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="Section_1.1">Section 1.1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Section 1.1">edit</a>]</span></h3>
-<h4><span class="mw-headline" id="Section_1.1.1">Section 1.1.1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: Section 1.1.1">edit</a>]</span></h4>
-<h4><span class="mw-headline" id="Section_1.1.1.1">Section 1.1.1.1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: Section 1.1.1.1">edit</a>]</span></h4>
-<h2><span class="mw-headline" id="Section_2">Section 2</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: Section 2">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Section 1">edit</a>]</span></h2>
+<h3><span class="mw-headline" id="Section_1.1">Section 1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Section 1.1">edit</a>]</span></h3>
+<h4><span class="mw-headline" id="Section_1.1.1">Section 1.1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: Section 1.1.1">edit</a>]</span></h4>
+<h4><span class="mw-headline" id="Section_1.1.1.1">Section 1.1.1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: Section 1.1.1.1">edit</a>]</span></h4>
+<h2><span class="mw-headline" id="Section_2">Section 2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: Section 2">edit</a>]</span></h2>
!! end
== Foo bar ==
== Foo bar ==
!! result
-<h2><span class="mw-headline" id="Foo_bar">Foo bar</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Foo bar">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="Foo_bar_2">Foo bar</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Foo bar">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Foo_bar">Foo bar</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Foo bar">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Foo_bar_2">Foo bar</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Foo bar">edit</a>]</span></h2>
!! end
== Foo bar ==
== Foo Bar ==
!! result
-<h2><span class="mw-headline" id="Foo_bar">Foo bar</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Foo bar">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="Foo_Bar_2">Foo Bar</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Foo Bar">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Foo_bar">Foo bar</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Foo bar">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Foo_Bar_2">Foo Bar</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Foo Bar">edit</a>]</span></h2>
!! end
{{sections}}
==Section 4==
!! result
-<h2><span class="mw-headline" id="Section_0">Section 0</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Section 0">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="Section_1">Section 1</span> <span class="mw-editsection">[<a href="/index.php?title=Template:Sections&action=edit&section=T-1" title="Template:Sections">edit</a>]</span></h3>
-<h2><span class="mw-headline" id="Section_2">Section 2</span> <span class="mw-editsection">[<a href="/index.php?title=Template:Sections&action=edit&section=T-2" title="Template:Sections">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="Section_4">Section 4</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Section 4">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Section_0">Section 0</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Section 0">edit</a>]</span></h2>
+<h3><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection">[<a href="/index.php?title=Template:Sections&action=edit&section=T-1" title="Template:Sections">edit</a>]</span></h3>
+<h2><span class="mw-headline" id="Section_2">Section 2</span><span class="mw-editsection">[<a href="/index.php?title=Template:Sections&action=edit&section=T-2" title="Template:Sections">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Section_4">Section 4</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Section 4">edit</a>]</span></h2>
!! end
==Section 1==
==Section 2==
!! result
-<h2><span class="mw-headline" id="Section_1">Section 1</span> </h2>
-<h2><span class="mw-headline" id="Section_2">Section 2</span> </h2>
+<h2><span class="mw-headline" id="Section_1">Section 1</span></h2>
+<h2><span class="mw-headline" id="Section_2">Section 2</span></h2>
!! end
!! input
==Section with a [[Main Page|link]] in it==
!! result
-<h2><span class="mw-headline" id="Section_with_a_link_in_it">Section with a <a href="/wiki/Main_Page" title="Main Page">link</a> in it</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Section with a link in it">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Section_with_a_link_in_it">Section with a <a href="/wiki/Main_Page" title="Main Page">link</a> in it</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Section with a link in it">edit</a>]</span></h2>
!! end
<li class="toclevel-1 tocsection-3"><a href="#title_2"><span class="tocnumber">2</span> <span class="toctext">title 2</span></a></li>
</ul>
</td></tr></table>
-<h2><span class="mw-headline" id="title_1">title 1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: title 1">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="title_1.1">title 1.1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: title 1.1">edit</a>]</span></h3>
-<h2><span class="mw-headline" id="title_2">title 2</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: title 2">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="title_1">title 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: title 1">edit</a>]</span></h2>
+<h3><span class="mw-headline" id="title_1.1">title 1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: title 1.1">edit</a>]</span></h3>
+<h2><span class="mw-headline" id="title_2">title 2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: title 2">edit</a>]</span></h2>
!! end
--> <!-- -->
But just in case it doesn't...
!! result
-<h1><span class="mw-headline" id=".3D">=</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: =">edit</a>]</span></h1>
+<h1><span class="mw-headline" id=".3D">=</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: =">edit</a>]</span></h1>
<p>The line above must have a trailing space!
</p>
-<h1><span class="mw-headline" id=".3D_2">=</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: =">edit</a>]</span></h1>
+<h1><span class="mw-headline" id=".3D_2">=</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: =">edit</a>]</span></h1>
<p>But just in case it doesn't...
</p>
!! end
<li class="toclevel-1 tocsection-5"><a href="#text_.22_text"><span class="tocnumber">5</span> <span class="toctext">text " text</span></a></li>
</ul>
</td></tr></table>
-<h2><span class="mw-headline" id="text_.3E_text">text > text</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: text > text">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="text_.3E_text">text > text</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: text > text">edit</a>]</span></h2>
<p>section 1
</p>
-<h2><span class="mw-headline" id="text_.3C_text">text < text</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: text < text">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="text_.3C_text">text < text</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: text < text">edit</a>]</span></h2>
<p>section 2
</p>
-<h2><span class="mw-headline" id="text_.26_text">text & text</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: text & text">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="text_.26_text">text & text</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: text & text">edit</a>]</span></h2>
<p>section 3
</p>
-<h2><span class="mw-headline" id="text_.27_text">text ' text</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: text ' text">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="text_.27_text">text ' text</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: text ' text">edit</a>]</span></h2>
<p>section 4
</p>
-<h2><span class="mw-headline" id="text_.22_text">text " text</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: text " text">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="text_.22_text">text " text</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: text " text">edit</a>]</span></h2>
<p>section 5
</p>
!! end
<li class="toclevel-1 tocsection-4"><a href="#.3Ditalic_heading"><span class="tocnumber">4</span> <span class="toctext">=<i>italic</i> heading</span></a></li>
</ul>
</td></tr></table>
-<h1><span class="mw-headline" id="foo.3D">foo=</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: foo=">edit</a>]</span></h1>
-<h1><span class="mw-headline" id=".3Dfoo">=foo</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: =foo">edit</a>]</span></h1>
-<h1><span class="mw-headline" id="italic_heading.3D"><i>italic</i> heading=</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: italic heading=">edit</a>]</span></h1>
-<h1><span class="mw-headline" id=".3Ditalic_heading">=<i>italic</i> heading</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: =italic heading">edit</a>]</span></h1>
+<h1><span class="mw-headline" id="foo.3D">foo=</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: foo=">edit</a>]</span></h1>
+<h1><span class="mw-headline" id=".3Dfoo">=foo</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: =foo">edit</a>]</span></h1>
+<h1><span class="mw-headline" id="italic_heading.3D"><i>italic</i> heading=</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: italic heading=">edit</a>]</span></h1>
+<h1><span class="mw-headline" id=".3Ditalic_heading">=<i>italic</i> heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: =italic heading">edit</a>]</span></h1>
!! end
</li>
</ul>
</td></tr></table>
-<h1><span class="mw-headline" id="Header_1">Header 1</span> </h1>
-<h2><span class="mw-headline" id="Header_1.1">Header 1.1</span> </h2>
-<h2><span class="mw-headline" id="Header_1.2">Header 1.2</span> </h2>
-<h1><span class="mw-headline" id="Header_2">Header 2</span> </h1>
-<h2><span class="mw-headline" id="Header_2.1">Header 2.1</span> </h2>
-<h2><span class="mw-headline" id="Header_2.2">Header 2.2</span> </h2>
+<h1><span class="mw-headline" id="Header_1">Header 1</span></h1>
+<h2><span class="mw-headline" id="Header_1.1">Header 1.1</span></h2>
+<h2><span class="mw-headline" id="Header_1.2">Header 1.2</span></h2>
+<h1><span class="mw-headline" id="Header_2">Header 2</span></h1>
+<h2><span class="mw-headline" id="Header_2.1">Header 2.1</span></h2>
+<h2><span class="mw-headline" id="Header_2.2">Header 2.2</span></h2>
!! end
== onmouseover= ==
http://__TOC__
!! result
-<h2><span class="mw-headline" id="onmouseover.3D">onmouseover=</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: onmouseover=">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="onmouseover.3D">onmouseover=</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: onmouseover=">edit</a>]</span></h2>
http://<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#onmouseover.3D"><span class="tocnumber">1</span> <span class="toctext">onmouseover=</span></a></li>
==a==
{| STYLE=__TOC__
!! result
-<h2><span class="mw-headline" id="a">a</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: a">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="a">a</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: a">edit</a>]</span></h2>
<table style="__TOC__">
<tr><td></td></tr>
</table>
!! input
{{MediaWiki:Fake}}
!! result
-<h2><span class="mw-headline" id="header">header</span> <span class="mw-editsection">[<a href="/index.php?title=MediaWiki:Fake&action=edit&section=T-1" title="MediaWiki:Fake">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="header">header</span><span class="mw-editsection">[<a href="/index.php?title=MediaWiki:Fake&action=edit&section=T-1" title="MediaWiki:Fake">edit</a>]</span></h2>
!! end
</li>
</ul>
</td></tr></table>
-<h2><span class="mw-headline" id="2">2</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: 2">edit</a>]</span></h2>
-<h6><span class="mw-headline" id="6">6</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: 6">edit</a>]</span></h6>
-<h3><span class="mw-headline" id="3">3</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: 3">edit</a>]</span></h3>
-<h1><span class="mw-headline" id="1">1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: 1">edit</a>]</span></h1>
-<h5><span class="mw-headline" id="5">5</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: 5">edit</a>]</span></h5>
-<h2><span class="mw-headline" id="2_2">2</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=6" title="Edit section: 2">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="2">2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: 2">edit</a>]</span></h2>
+<h6><span class="mw-headline" id="6">6</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: 6">edit</a>]</span></h6>
+<h3><span class="mw-headline" id="3">3</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: 3">edit</a>]</span></h3>
+<h1><span class="mw-headline" id="1">1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: 1">edit</a>]</span></h1>
+<h5><span class="mw-headline" id="5">5</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: 5">edit</a>]</span></h5>
+<h2><span class="mw-headline" id="2_2">2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=6" title="Edit section: 2">edit</a>]</span></h2>
!! end
{{anchorencode: _ +:.3A%3A&&]] }}
__NOEDITSECTION__
!! result
-<h3><span class="mw-headline" id=".2B:.3A.253A.26.26.5D.5D">_ +:.3A%3A&&]]</span> </h3>
+<h3><span class="mw-headline" id=".2B:.3A.253A.26.26.5D.5D">_ +:.3A%3A&&]]</span></h3>
<p>.2B:.3A.253A.26.26.5D.5D
</p>
!! end
!! input
== -{Naslov}- ==
!! result
-<h2><span class="mw-headline" id="-.7BNaslov.7D-">Naslov</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Уредите одељак „Naslov“">уреди</a>]</span></h2>
+<h2><span class="mw-headline" id="-.7BNaslov.7D-">Naslov</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Уредите одељак „Naslov“">уреди</a>]</span></h2>
!! end
!! result
<p>[[link
</p>
-<h2><span class="mw-headline" id="heading">heading</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: heading">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="heading">heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: heading">edit</a>]</span></h2>
!! end
!! result
<p>{{foo|
</p>
-<h1><span class="mw-headline" id="heading">heading</span> </h1>
+<h1><span class="mw-headline" id="heading">heading</span></h1>
!! end
!! result
<p>{{foo|
</p>
-<h2><span class="mw-headline" id="heading">heading</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: heading">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="heading">heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: heading">edit</a>]</span></h2>
!! end
<li class="toclevel-1 tocsection-1"><a href="#Lost_episodes"><span class="tocnumber">1</span> <span class="toctext"><i>Lost</i> episodes</span></a></li>
</ul>
</td></tr></table>
-<h2><span class="mw-headline" id="Lost_episodes"><i>Lost</i> episodes</span> <span class="mw-editsection">[<a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: Lost episodes">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Lost_episodes"><i>Lost</i> episodes</span><span class="mw-editsection">[<a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: Lost episodes">edit</a>]</span></h2>
!! end
<li class="toclevel-1 tocsection-1"><a href="#should_be_bold_then_normal_text"><span class="tocnumber">1</span> <span class="toctext"><b>should be bold</b> then normal text</span></a></li>
</ul>
</td></tr></table>
-<h2><span class="mw-headline" id="should_be_bold_then_normal_text"><b>should be bold</b> then normal text</span> <span class="mw-editsection">[<a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: should be bold then normal text">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="should_be_bold_then_normal_text"><b>should be bold</b> then normal text</span><span class="mw-editsection">[<a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: should be bold then normal text">edit</a>]</span></h2>
!! end
<li class="toclevel-1 tocsection-1"><a href="#Image"><span class="tocnumber">1</span> <span class="toctext">Image</span></a></li>
</ul>
</td></tr></table>
-<h2><span class="mw-headline" id="Image">Image <a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></span> <span class="mw-editsection">[<a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: Image">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Image">Image <a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></span><span class="mw-editsection">[<a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: Image">edit</a>]</span></h2>
!! end
<li class="toclevel-1 tocsection-1"><a href="#Quote"><span class="tocnumber">1</span> <span class="toctext">Quote</span></a></li>
</ul>
</td></tr></table>
-<h2><span class="mw-headline" id="Quote"><blockquote>Quote</blockquote></span> <span class="mw-editsection">[<a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: Quote">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Quote"><blockquote>Quote</blockquote></span><span class="mw-editsection">[<a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: Quote">edit</a>]</span></h2>
!! end
<li class="toclevel-1 tocsection-1"><a href="#Proof:_2_.3C_3"><span class="tocnumber">1</span> <span class="toctext">Proof: 2 < 3</span></a></li>
</ul>
</td></tr></table>
-<h2><span class="mw-headline" id="Proof:_2_.3C_3">Proof: 2 < 3</span> <span class="mw-editsection">[<a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: Proof: 2 < 3">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Proof:_2_.3C_3">Proof: 2 < 3</span><span class="mw-editsection">[<a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: Proof: 2 < 3">edit</a>]</span></h2>
<p><small>Hanc marginis exiguitas non caperet.</small>
QED
</p>
<li class="toclevel-1 tocsection-2"><a href="#Foo_Bar_2"><span class="tocnumber">2</span> <span class="toctext"><i>Foo</i> Bar</span></a></li>
</ul>
</td></tr></table>
-<h2><span class="mw-headline" id="Foo_Bar"><i>Foo</i> <b>Bar</b></span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Foo Bar">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="Foo_Bar_2"><i>Foo</i> <blockquote>Bar</blockquote></span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Foo Bar">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Foo_Bar"><i>Foo</i> <b>Bar</b></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Foo Bar">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Foo_Bar_2"><i>Foo</i> <blockquote>Bar</blockquote></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Foo Bar">edit</a>]</span></h2>
!! end
<li class="toclevel-1 tocsection-2"><a href="#b.22.3EEvilbye"><span class="tocnumber">2</span> <span class="toctext"><sup> b">Evilbye</sup></span></a></li>
</ul>
</td></tr></table>
-<h2><span class="mw-headline" id="Hello"><sup class="in-h2">Hello</sup></span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Hello">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="b.22.3EEvilbye"><sup> b">Evilbye</sup></span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: b">Evilbye">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Hello"><sup class="in-h2">Hello</sup></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Hello">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="b.22.3EEvilbye"><sup> b">Evilbye</sup></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: b">Evilbye">edit</a>]</span></h2>
!! end
<li class="toclevel-1 tocsection-5"><a href="#Attributes_after_dir_on_these_span_tags_must_be_deleted_from_the_TOC"><span class="tocnumber">5</span> <span class="toctext"><span dir="ltr">Attributes after dir on these span tags must be deleted from the TOC</span></span></a></li>
</ul>
</td></tr></table>
-<h2><span class="mw-headline" id="C.2B.2B"><span dir="ltr">C++</span></span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: C++">edit</a>]</span></h2>
-<h2><span class="mw-headline" id=".D7.96.D7.91.D7.A0.D7.92.21"><span dir="rtl">זבנג!</span></span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: זבנג!">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="The_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"><span style="font-style: italic">The attributes on these span tags must be deleted from the TOC</span></span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: The attributes on these span tags must be deleted from the TOC">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="All_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"><span style="font-style: italic" dir="ltr">All attributes on these span tags must be deleted from the TOC</span></span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: All attributes on these span tags must be deleted from the TOC">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="Attributes_after_dir_on_these_span_tags_must_be_deleted_from_the_TOC"><span dir="ltr" style="font-style: italic">Attributes after dir on these span tags must be deleted from the TOC</span></span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: Attributes after dir on these span tags must be deleted from the TOC">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="C.2B.2B"><span dir="ltr">C++</span></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: C++">edit</a>]</span></h2>
+<h2><span class="mw-headline" id=".D7.96.D7.91.D7.A0.D7.92.21"><span dir="rtl">זבנג!</span></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: זבנג!">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="The_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"><span style="font-style: italic">The attributes on these span tags must be deleted from the TOC</span></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: The attributes on these span tags must be deleted from the TOC">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="All_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"><span style="font-style: italic" dir="ltr">All attributes on these span tags must be deleted from the TOC</span></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: All attributes on these span tags must be deleted from the TOC">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Attributes_after_dir_on_these_span_tags_must_be_deleted_from_the_TOC"><span dir="ltr" style="font-style: italic">Attributes after dir on these span tags must be deleted from the TOC</span></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: Attributes after dir on these span tags must be deleted from the TOC">edit</a>]</span></h2>
!! end
!! input
{{int:Bug32057}}
!! result
-<h2><span class="mw-headline" id="Headline_text">Headline text</span> <span class="mw-editsection">[<a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: Headline text">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Headline_text">Headline text</span><span class="mw-editsection">[<a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: Headline text">edit</a>]</span></h2>
!! end
!! input
==[[foo|x<nowiki>y</nowiki>z]]==
!! result
-<h2><span class="mw-headline" id="xyz"><a href="/index.php?title=Foo&action=edit&redlink=1" class="new" title="Foo (page does not exist)">xyz</a></span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: xyz">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="xyz"><a href="/index.php?title=Foo&action=edit&redlink=1" class="new" title="Foo (page does not exist)">xyz</a></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: xyz">edit</a>]</span></h2>
!! end
$this->called['setUp'] = 1;
/*
- //@todo: global variables to restore for *every* test
+ // @todo global variables to restore for *every* test
array(
'wgLang',
'wgContLang',
}
// give up
- // @todo: Inside a test, we could skip the test as incomplete.
+ // @todo Inside a test, we could skip the test as incomplete.
// But frequently, this is used in fixture setup.
throw new MWException( "No namespace defaults to wikitext!" );
}
) );
}
- #@todo: test recursive, too!
+ // @todo test recursive, too!
protected function assertLinksUpdate( Title $title, ParserOutput $parserOutput, $table, $fields, $condition, array $expectedRows ) {
$update = new LinksUpdate( $title, $parserOutput );
}
/**
- * @todo: Emulate these edits somehow and extract
+ * @todo Emulate these edits somehow and extract
* raw edit summary from RecentChange object
* --
*/
$page = $this->createPage( 'RevisionStorageTest_testIsCurrent', 'Lorem Ipsum', CONTENT_MODEL_WIKITEXT );
$rev1 = $page->getRevision();
- # @todo: find out if this should be true
+ # @todo find out if this should be true
# $this->assertTrue( $rev1->isCurrent() );
$rev1x = Revision::newFromId( $rev1->getId() );
$page->doEditContent( ContentHandler::makeContent( 'Bla bla', $page->getTitle(), CONTENT_MODEL_WIKITEXT ), 'second rev' );
$rev2 = $page->getRevision();
- # @todo: find out if this should be true
+ # @todo find out if this should be true
# $this->assertTrue( $rev2->isCurrent() );
$rev1x = Revision::newFromId( $rev1->getId() );
*/
public function testGetContentFormat() {
try {
- //@todo: change this to test failure on using a non-standard (but supported) format
+ // @todo change this to test failure on using a non-standard (but supported) format
// for a content model supported in the given location. As of 1.21, there are
// no alternative formats for any of the standard content models that could be
// used for this though.
);
}
- function testSelfClosingTag() {
- $this->setMwGlobals( array(
- 'wgUseTidy' => false
- ) );
-
- $this->assertEquals(
- '<div>Hello world</div>',
- Sanitizer::removeHTMLtags( '<div>Hello world</div />' ),
- 'Self-closing closing div'
+ function dataRemoveHTMLtags() {
+ return array(
+ // former testSelfClosingTag
+ array(
+ '<div>Hello world</div />',
+ '<div>Hello world</div>',
+ 'Self-closing closing div'
+ ),
+ // Make sure special nested HTML5 semantics are not broken
+ // http://www.whatwg.org/html/text-level-semantics.html#the-kbd-element
+ array(
+ '<kbd><kbd>Shift</kbd>+<kbd>F3</kbd></kbd>',
+ '<kbd><kbd>Shift</kbd>+<kbd>F3</kbd></kbd>',
+ 'Nested <kbd>.'
+ ),
+ // http://www.whatwg.org/html/text-level-semantics.html#the-sub-and-sup-elements
+ array(
+ '<var>x<sub><var>i</var></sub></var>, <var>y<sub><var>i</var></sub></var>',
+ '<var>x<sub><var>i</var></sub></var>, <var>y<sub><var>i</var></sub></var>',
+ 'Nested <var>.'
+ ),
+ // http://www.whatwg.org/html/text-level-semantics.html#the-dfn-element
+ array(
+ '<dfn><abbr title="Garage Door Opener">GDO</abbr></dfn>',
+ '<dfn><abbr title="Garage Door Opener">GDO</abbr></dfn>',
+ '<abbr> inside <dfn>',
+ ),
);
}
+ /**
+ * @dataProvider dataRemoveHTMLtags
+ */
+ function testRemoveHTMLtags( $input, $output, $msg = null ) {
+ $GLOBALS['wgUseTidy'] = false;
+ $this->assertEquals( $output, Sanitizer::removeHTMLtags( $input ), $msg );
+ }
/**
* @dataProvider provideTagAttributesToDecode
if ( $this->isWikitextNS( NS_MAIN ) ) {
//NOTE: some content models don't allow moving
- //@todo: find a Wikitext namespace for testing
+ // @todo find a Wikitext namespace for testing
$this->setTitle( NS_MAIN );
$this->setUser( 'anon' );
public static function provideGetParserOutput() {
return array(
array( CONTENT_MODEL_WIKITEXT, "hello ''world''\n", "<p>hello <i>world</i></p>" ),
- // @todo: more...?
+ // @todo more...?
);
}
$opt = new ParserOptions();
$po = $page->getParserOutput( $opt, $page->getLatest() + 1234 );
- //@todo: would be neat to also test deleted revision
+ // @todo would be neat to also test deleted revision
$this->assertFalse( $po, "getParserOutput() shall return false for non-existing revisions." );
}
}
/**
- * @todo: test needs database!
+ * @todo Test needs database!
*/
/*
public function getRedirectChain() {
*/
/**
- * @todo: test needs database!
+ * @todo Test needs database!
*/
/*
public function getUltimateRedirectTarget() {
}
/**
- * @todo: test needs database! Should be done by a test class in the Database group.
+ * @todo Test needs database! Should be done by a test class in the Database group.
*/
/*
public function getRedirectChain() {
*/
/**
- * @todo: test needs database! Should be done by a test class in the Database group.
+ * @todo Test needs database! Should be done by a test class in the Database group.
*/
/*
public function getUltimateRedirectTarget() {
}
/**
- * @todo: test needs database! Should be done by a test class in the Database group.
+ * @todo Test needs database! Should be done by a test class in the Database group.
*/
/*
public function getRedirectChain() {
*/
/**
- * @todo: test needs database! Should be done by a test class in the Database group.
+ * @todo Test needs database! Should be done by a test class in the Database group.
*/
/*
public function getUltimateRedirectTarget() {
CONTENT_MODEL_WIKITEXT, "hello [[world test 21344]]\n",
array( 'LinksDeletionUpdate' => array() )
),
- // @todo: more...?
+ // @todo more...?
);
}
}
/**
* Runs upgrades of older databases and compares results with current schema
- * @todo: currently only checks list of tables
+ * @todo Currently only checks list of tables
*/
public function testUpgrades() {
global $IP, $wgVersion, $wgProfileToDatabase;
return -1;
}
- static function getSoftwareLink() {
+ function getSoftwareLink() {
return 'test';
}
}
}
- // @TODO: testSecure
+ // @todo testSecure
public function testDoOperations() {
$this->backend = $this->singleBackend;
$this->$q->setTestingPrefix( 'unittests-' . wfRandomString( 32 ) );
}
} catch ( MWException $e ) {
- }; // unsupported? (@TODO: what if it was another error?)
+ // unsupported?
+ // @todo What if it was another error?
+ };
}
}
if ( !$this->isWikitextNS( NS_MAIN ) ) {
// parser tests frequently assume that the main namespace contains wikitext.
- // @todo: When setting up pages, force the content model. Only skip if
+ // @todo When setting up pages, force the content model. Only skip if
// $wgtContentModelUseDB is false.
$this->markTestSkipped( "Main namespace does not support wikitext,"
. "skipping parser test: $desc" );
}
if ( !$this->isWikitextNS( NS_MAIN ) ) {
- //@todo: cover the case of non-wikitext content in the main namespace
+ // @todo cover the case of non-wikitext content in the main namespace
return;
}
--- /dev/null
+<?php
+/**
+ * Test class for SpecialPreferences class.
+ *
+ * Copyright © 2013, Antoine Musso
+ * Copyright © 2013, Wikimedia Foundation Inc.
+ *
+ */
+
+class SpecialPreferencesTest extends MediaWikiTestCase {
+
+ /**
+ * Make sure a nickname which is longer than $wgMaxSigChars
+ * is not throwing a fatal error.
+ *
+ * Test specifications by Alexandre "ialex" Emsenhuber.
+ */
+ function testBug41337() {
+
+ // Set a low limit
+ $this->setMwGlobals( 'wgMaxSigChars', 2 );
+
+ $user = $this->getMock( 'User' );
+ $user->expects( $this->any() )
+ ->method('isAnon')
+ ->will( $this->returnValue(false) );
+
+ # Yeah foreach requires an array, not NULL =(
+ $user->expects( $this->any() )
+ ->method('getEffectiveGroups')
+ ->will( $this->returnValue( array() ) );
+
+ # The mocked user has a long nickname
+ $user->expects( $this->any() )
+ ->method('getOption')
+ ->will( $this->returnValueMap( array(
+ array( 'nickname', null, false, 'superlongnickname' ),
+ )
+ ) );
+
+ # Validate the mock (FIXME should probably be removed)
+ $this->assertFalse( $user->isAnon() );
+ $this->assertEquals( array(),
+ $user->getEffectiveGroups() );
+ $this->assertEquals( 'superlongnickname',
+ $user->getOption( 'nickname' ) );
+
+ # Forge a request to call the special page
+ $context = new RequestContext();
+ $context->setRequest( new FauxRequest() );
+ $context->setUser( $user );
+ $context->setTitle( Title::newFromText( 'Test' ) );
+
+ # Do the call, should not spurt a fatal error.
+ $special = new SpecialPreferences();
+ $special->setContext( $context );
+ $special->execute( array() );
+ }
+
+}
// Page from non-default namespace
if ( $ns === NS_TALK ) {
- //@todo: work around this.
+ // @todo work around this.
throw new MWException( "The default wikitext namespace is the talk namespace. "
. " We can't currently deal with that." );
}
$this->talk_namespace = NS_TALK;
if ( $this->namespace === $this->talk_namespace ) {
- //@todo: work around this.
+ // @todo work around this.
throw new MWException( "The default wikitext namespace is the talk namespace. "
. " We can't currently deal with that." );
}
$img = new UnregisteredLocalFile( null, $repo,
# Temp files are hashed based on the name without the timestamp.
# The thumbnails will be hashed based on the entire name however.
- # @TODO: fix this convention to actually be reasonable.
+ # @todo fix this convention to actually be reasonable.
$repo->getZonePath( 'public' ) . '/' . $repo->getTempHashPath( $fileName ) . $fileName
);
} elseif ( $isOld ) {